[{"data":1,"prerenderedAt":841},["ShallowReactive",2],{"navigation_docs_en":3,"-en-referensi-troubleshooting":52,"-en-referensi-troubleshooting-surround":836},[4,18,35],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Get started","\u002Fen\u002Fmulai","en\u002F1.mulai",[9,13],{"title":10,"path":11,"stem":12},"Installation & quick start","\u002Fen\u002Fmulai\u002Finstalasi","en\u002F1.mulai\u002F1.instalasi",{"title":14,"path":15,"stem":16},"Login & sessions","\u002Fen\u002Fmulai\u002Flogin","en\u002F1.mulai\u002F2.login",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Guides","\u002Fen\u002Fpanduan","en\u002F2.panduan",[23,27,31],{"title":24,"path":25,"stem":26},"Project configuration","\u002Fen\u002Fpanduan\u002Fkonfigurasi","en\u002F2.panduan\u002F1.konfigurasi",{"title":28,"path":29,"stem":30},"Multiple profiles","\u002Fen\u002Fpanduan\u002Fmulti-profile","en\u002F2.panduan\u002F2.multi-profile",{"title":32,"path":33,"stem":34},"Pull & push","\u002Fen\u002Fpanduan\u002Fpull-push","en\u002F2.panduan\u002F3.pull-push",{"title":36,"path":37,"stem":38,"children":39,"page":17},"Reference","\u002Fen\u002Freferensi","en\u002F3.referensi",[40,44,48],{"title":41,"path":42,"stem":43},"Command reference","\u002Fen\u002Freferensi\u002Fcommands","en\u002F3.referensi\u002F1.commands",{"title":45,"path":46,"stem":47},"Troubleshooting","\u002Fen\u002Freferensi\u002Ftroubleshooting","en\u002F3.referensi\u002F2.troubleshooting",{"title":49,"path":50,"stem":51},"Release notes","\u002Fen\u002Freferensi\u002Fcatatan-rilis","en\u002F3.referensi\u002F3.catatan-rilis",{"id":53,"title":45,"body":54,"description":829,"extension":830,"links":831,"meta":832,"navigation":833,"path":46,"seo":834,"stem":47,"__hash__":835},"docs_en\u002Fen\u002F3.referensi\u002F2.troubleshooting.md",{"type":55,"value":56,"toc":811},"minimark",[57,62,66,96,99,105,108,117,132,135,141,151,157,160,175,186,190,204,219,230,234,240,243,266,272,276,282,286,293,301,311,314,328,334,337,395,401,405,408,422,440,444,450,454,465,530,544,548,563,573,675,685,693,697,706,710,720,730,734,800,807],[58,59,61],"h2",{"id":60},"command-l-not-found","Command l not found",[63,64,65],"p",{},"Make sure Node.js 22+ is installed, then run:",[67,68,73],"pre",{"className":69,"code":70,"language":71,"meta":72,"style":72},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install -g @ricko-v\u002Fl\nl --version\nl --help\n","sh","",[74,75,76,84,90],"code",{"__ignoreMap":72},[77,78,81],"span",{"class":79,"line":80},"line",1,[77,82,83],{},"npm install -g @ricko-v\u002Fl\n",[77,85,87],{"class":79,"line":86},2,[77,88,89],{},"l --version\n",[77,91,93],{"class":79,"line":92},3,[77,94,95],{},"l --help\n",[63,97,98],{},"Open a new terminal after installing. If it still fails, check that the global npm executable directory is on your terminal's PATH.",[58,100,102],{"id":101},"not-authenticated-run-l-login-first",[74,103,104],{},"Not authenticated. Run l login first.",[63,106,107],{},"The session file is missing. Run:",[67,109,111],{"className":69,"code":110,"language":71,"meta":72,"style":72},"l login\n",[74,112,113],{"__ignoreMap":72},[77,114,115],{"class":79,"line":80},[77,116,110],{},[63,118,119,120,123,124,127,128,131],{},"For named profiles, use the name from the error, for example ",[74,121,122],{},"l login --profile production",". A project profile does not automatically use the ",[74,125,126],{},"default"," session even when default is already logged in. Verify your identity with ",[74,129,130],{},"l whoami --profile production",".",[63,133,134],{},"If login just finished, make sure the command runs as the same operating system user, since sessions are stored in that user's home directory.",[58,136,138],{"id":137},"invalid-aws-session-run-l-login-again",[74,139,140],{},"Invalid AWS session. Run l login again.",[63,142,143,144,147,148,131],{},"The contents of ",[74,145,146],{},"~\u002F.l\u002Fsession.json"," are invalid, incomplete, or contain an invalid expiry date. Sign in again. Do not try to repair credentials manually. Named profiles use ",[74,149,150],{},"~\u002F.l\u002Fprofiles\u002F\u003Cprofile>\u002Fsession.json",[58,152,154],{"id":153},"cannot-read-aws-session",[74,155,156],{},"Cannot read AWS session",[63,158,159],{},"The file exists but cannot be read. Check directory\u002Ffile ownership and permissions. Expected values on macOS\u002FLinux:",[67,161,163],{"className":69,"code":162,"language":71,"meta":72,"style":72},"ls -ld ~\u002F.l\nls -l ~\u002F.l\u002Fsession.json\n",[74,164,165,170],{"__ignoreMap":72},[77,166,167],{"class":79,"line":80},[77,168,169],{},"ls -ld ~\u002F.l\n",[77,171,172],{"class":79,"line":86},[77,173,174],{},"ls -l ~\u002F.l\u002Fsession.json\n",[63,176,177,178,181,182,185],{},"Only the user should be able to access the directory (",[74,179,180],{},"0700",") and read\u002Fwrite the file (",[74,183,184],{},"0600","). The next login also attempts to tighten permissions.",[58,187,189],{"id":188},"wrong-or-missing-profile","Wrong or missing profile",[63,191,192,193,196,197,200,201,131],{},"Check ",[74,194,195],{},"profile"," in the nearest config and the command's ",[74,198,199],{},"--profile"," option. The option overrides the project choice. Profile names are lowercase without spaces, dots, or path separators. This CLI does not use ",[74,202,203],{},"AWS_PROFILE",[67,205,207],{"className":69,"code":206,"language":71,"meta":72,"style":72},"l whoami --profile production\nl login --profile production\n",[74,208,209,214],{"__ignoreMap":72},[77,210,211],{"class":79,"line":80},[77,212,213],{},"l whoami --profile production\n",[77,215,216],{"class":79,"line":86},[77,217,218],{},"l login --profile production\n",[63,220,221,222,224,225,229],{},"Named sessions live in ",[74,223,150],{},". Avoid symlinks in profile directories\u002Ffiles because they are rejected. If you need another account for code already pulled, use a separate project so the ARN baseline stays consistent. See ",[226,227,228],"a",{"href":29},"multiple profiles"," for selection rules and compatibility with older sessions.",[58,231,233],{"id":232},"login-timeout","Login timeout",[63,235,236,239],{},[74,237,238],{},"AWS login timed out"," appears if no callback arrives within five minutes.",[63,241,242],{},"Check that:",[244,245,246,250,256,259],"ul",{},[247,248,249],"li",{},"the browser opened successfully;",[247,251,252,255],{},[74,253,254],{},"l login"," is still running;",[247,257,258],{},"AWS Sign-In is not blocked by an extension or network policy;",[247,260,261,262,265],{},"the redirect to ",[74,263,264],{},"127.0.0.1"," is reachable from the same browser.",[63,267,268,269,271],{},"Then run ",[74,270,254],{}," again. Each attempt creates new state, a PKCE verifier, and a DPoP key.",[58,273,275],{"id":274},"oauth-state-mismatch","OAuth state mismatch",[63,277,278,279,281],{},"The callback belongs to another flow or its URL is incomplete. Return to the tab opened by your latest login attempt. If it still fails, close the old flow and run ",[74,280,254],{}," again.",[58,283,285],{"id":284},"session-refresh-failed","Session refresh failed",[63,287,288,289,292],{},"When AWS returns ",[74,290,291],{},"The refresh token has expired",", the CLI displays:",[67,294,299],{"className":295,"code":297,"language":298,"meta":72},[296],"language-text","Refreshing AWS session...\nAWS session expired for profile \"default\": the refresh token has expired. Run `l login --profile default` to sign in again, then retry your command.\n","text",[74,300,297],{"__ignoreMap":72},[63,302,303,304,307,308,310],{},"Commands requiring credentials stop with an error; ",[74,305,306],{},"l init"," displays the message and still offers manual configuration. Run ",[74,309,254],{},", then retry the original command. Network and permission failures keep their original errors so they are not confused with session expiry.",[63,312,313],{},"Refresh tokens may expire or be rejected. Sign in again:",[67,315,317],{"className":69,"code":316,"language":71,"meta":72,"style":72},"l login\nl whoami\n",[74,318,319,323],{"__ignoreMap":72},[77,320,321],{"class":79,"line":80},[77,322,110],{},[77,324,325],{"class":79,"line":86},[77,326,327],{},"l whoami\n",[58,329,331],{"id":330},"accessdeniedexception",[74,332,333],{},"AccessDeniedException",[63,335,336],{},"Login succeeded, but the identity lacks permission for the requested operation.",[338,339,340,353],"table",{},[341,342,343],"thead",{},[344,345,346,350],"tr",{},[347,348,349],"th",{},"Command",[347,351,352],{},"Permission to check",[354,355,356,371,383],"tbody",{},[344,357,358,364],{},[359,360,361],"td",{},[74,362,363],{},"l whoami",[359,365,366,367,370],{},"Does not require explicit ",[74,368,369],{},"sts:GetCallerIdentity"," permission",[344,372,373,378],{},[359,374,375],{},[74,376,377],{},"l lambda list",[359,379,380],{},[74,381,382],{},"lambda:ListFunctions",[344,384,385,390],{},[359,386,387],{},[74,388,389],{},"l lambda info \u003Cname>",[359,391,392],{},[74,393,394],{},"lambda:GetFunction",[63,396,397,398,400],{},"Also check the account and region using ",[74,399,363],{},". The person managing AWS account access must correct the IAM policy.",[58,402,404],{"id":403},"function-not-found","Function not found",[63,406,407],{},"Make sure the name and region are correct:",[67,409,411],{"className":69,"code":410,"language":71,"meta":72,"style":72},"l whoami\nl lambda list --prefix name-prefix\n",[74,412,413,417],{"__ignoreMap":72},[77,414,415],{"class":79,"line":80},[77,416,327],{},[77,418,419],{"class":79,"line":86},[77,420,421],{},"l lambda list --prefix name-prefix\n",[63,423,424,425,428,429,432,433,436,437,439],{},"The Lambda region follows ",[74,426,427],{},"--region",", the project, then the login session. Check ",[74,430,431],{},"l.config.json"," or try ",[74,434,435],{},"l lambda list --region \u003Cregion>",". The region in ",[74,438,363],{}," is the auth region and may differ from the resource region.",[58,441,443],{"id":442},"init-requires-an-interactive-terminal","Init requires an interactive terminal",[63,445,446,447,449],{},"Run ",[74,448,306],{}," directly in a terminal. Piping or redirecting stdin\u002Fstdout is not supported. Enter a choice number and press Enter; Ctrl+C cancels input.",[58,451,453],{"id":452},"windows-and-linux","Windows and Linux",[455,456,457,461,462,131],"note",{},[458,459,460],"strong",{},"Upcoming release — not available in v2.0.0."," The Windows profile name checks, executable mode preservation, and browser fallback below are not in v2.0.0. See the ",[226,463,464],{"href":50},"release notes",[244,466,467,481,502,516,524],{},[247,468,469,480],{},[458,470,471,472,475,476,479],{},"Windows: ",[74,473,474],{},"EPERM","\u002F",[74,477,478],{},"EBUSY"," during rename or folder replacement:"," close processes holding target files and check folder permissions. Conflict checks still apply; do not delete config\u002Fstate to force an update.",[247,482,483,486,487,490,491,490,494,497,498,501],{},[458,484,485],{},"Upcoming release — Windows: rejected profile names:"," avoid device names such as ",[74,488,489],{},"con",", ",[74,492,493],{},"nul",[74,495,496],{},"com1",", and ",[74,499,500],{},"lpt1",". This rule applies on other operating systems for portability too.",[247,503,504,507,508,511,512,131],{},[458,505,506],{},"Upcoming release — Windows: Lambda executables:"," executable modes for known files follow the deployment baseline. New files use ",[74,509,510],{},"0644","; prepare new executables on Linux\u002FWSL or macOS. See ",[226,513,515],{"href":514},"\u002Fen\u002Fpanduan\u002Fpull-push#windows-and-executable-permissions","Windows and executable permissions",[247,517,518,521,522,131],{},[458,519,520],{},"Upcoming release — Linux: browser does not open:"," open the displayed login URL in a browser on the same computer. The CLI keeps waiting for the callback; a browser on another computer over SSH cannot automatically reach the CLI process's ",[74,523,264],{},[247,525,526,529],{},[458,527,528],{},"Native dependencies:"," the CLI does not run builds. Prepare binaries\u002Fdependencies for Linux and the target Lambda architecture, not your local Windows\u002FmacOS binaries.",[63,531,532,533,490,539,131],{},"References: ",[226,534,538],{"href":535,"rel":536},"https:\u002F\u002Fnodejs.org\u002Fapi\u002Ffs.html",[537],"nofollow","Node.js filesystem caveats",[226,540,543],{"href":541,"rel":542},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fwindows\u002Fwin32\u002Ffileio\u002Fnaming-a-file",[537],"Windows filename rules",[58,545,547],{"id":546},"termux-eacces-permission-denied-link","Termux: EACCES permission denied link",[63,549,550,551,554,555,490,557,559,560,131],{},"If the message mentions ",[74,552,553],{},".l.config-*.tmp"," and ",[74,556,431],{},[74,558,306],{}," failed while saving a new config, after successfully writing the temporary file. Android may restrict hard links in Termux. The upcoming fix tries an exclusive copy when hard links are rejected; existing configs are still not overwritten. This fix is not included in npm version ",[74,561,562],{},"2.0.0",[63,564,565,566,568,569,572],{},"While waiting for the fix, create ",[74,567,431],{}," manually in your project folder ",[458,570,571],{},"only if it does not exist",", using:",[67,574,578],{"className":575,"code":576,"language":577,"meta":72,"style":72},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"version\": 1,\n  \"name\": \"my-project\",\n  \"region\": \"ap-southeast-1\",\n  \"profile\": \"default\"\n}\n","json",[74,579,580,586,608,630,651,669],{"__ignoreMap":72},[77,581,582],{"class":79,"line":80},[77,583,585],{"class":584},"sMK4o","{\n",[77,587,588,591,595,598,601,605],{"class":79,"line":86},[77,589,590],{"class":584},"  \"",[77,592,594],{"class":593},"spNyl","version",[77,596,597],{"class":584},"\"",[77,599,600],{"class":584},":",[77,602,604],{"class":603},"sbssI"," 1",[77,606,607],{"class":584},",\n",[77,609,610,612,615,617,619,622,626,628],{"class":79,"line":92},[77,611,590],{"class":584},[77,613,614],{"class":593},"name",[77,616,597],{"class":584},[77,618,600],{"class":584},[77,620,621],{"class":584}," \"",[77,623,625],{"class":624},"sfazB","my-project",[77,627,597],{"class":584},[77,629,607],{"class":584},[77,631,633,635,638,640,642,644,647,649],{"class":79,"line":632},4,[77,634,590],{"class":584},[77,636,637],{"class":593},"region",[77,639,597],{"class":584},[77,641,600],{"class":584},[77,643,621],{"class":584},[77,645,646],{"class":624},"ap-southeast-1",[77,648,597],{"class":584},[77,650,607],{"class":584},[77,652,654,656,658,660,662,664,666],{"class":79,"line":653},5,[77,655,590],{"class":584},[77,657,195],{"class":593},[77,659,597],{"class":584},[77,661,600],{"class":584},[77,663,621],{"class":584},[77,665,126],{"class":624},[77,667,668],{"class":584},"\"\n",[77,670,672],{"class":79,"line":671},6,[77,673,674],{"class":584},"}\n",[63,676,677,678,680,681,684],{},"Adjust the name, region, and profile, then run ",[74,679,306],{}," again to choose a function\u002Fprefix. Updating an existing config uses rename rather than a hard link. If the file already exists, inspect and edit it; do not overwrite it with this example. If copying also produces ",[74,682,683],{},"EACCES",", check folder\u002Ffile write permissions.",[63,686,687,688,131],{},"Reference: ",[226,689,692],{"href":690,"rel":691},"https:\u002F\u002Fgithub.com\u002Ftermux\u002Ftermux-app\u002Fissues\u002F837",[537],"Termux hard link report",[58,694,696],{"id":695},"init-cannot-fetch-the-lambda-list","Init cannot fetch the Lambda list",[63,698,699,700,702,703,705],{},"Make sure you have run ",[74,701,254],{}," and have ",[74,704,382],{}," permission in the selected resource region. If the list is empty or the request fails, the wizard returns to the mode menu. Manual names, prefixes, and skipping are still available.",[58,707,709],{"id":708},"project-config-is-invalid-or-changed-during-init","Project config is invalid or changed during init",[63,711,712,715,716,719],{},[74,713,714],{},"Invalid l.config.json"," stops the process so the old file remains available. Fix its format using ",[226,717,718],{"href":25},"project configuration",", then retry.",[63,721,722,723,726,727,729],{},"If the file changed while the wizard was running or you see ",[74,724,725],{},"EEXIST",", review the latest config and run ",[74,728,306],{}," again. Existing configs require update approval.",[58,731,733],{"id":732},"pull-or-push-failed","Pull or push failed",[244,735,736,745,759,769,778,784,790],{},[247,737,738,741,742,719],{},[458,739,740],{},"Preflight failed:"," a target failed the initial checks. No function code or baseline has changed; fix targets marked ",[74,743,744],{},"failed",[247,746,747,750,751,754,755,758],{},[458,748,749],{},"Sync stopped after a failure:"," review the summary. Targets marked ",[74,752,753],{},"success"," remain applied; ",[74,756,757],{},"skipped"," targets have not run. Check AWS for a failed push because upload may have been accepted before the error. Retry only target names that still need work.",[247,760,761,764,765,768],{},[458,762,763],{},"Remote revision conflict:"," back up local changes, pull, then merge changes before pushing again. ",[74,766,767],{},"--yes"," does not bypass conflicts.",[247,770,771,774,775,777],{},[458,772,773],{},"Local changes need explicit review:"," retry pull without ",[74,776,767],{},", review changes, then confirm backup\u002Freplacement if appropriate.",[247,779,780,783],{},[458,781,782],{},"Account or region differs:"," use the original login\u002Fregion or a separate project.",[247,785,786,789],{},[458,787,788],{},"Update timed out:"," check AWS first; code may have been uploaded even though local state has not advanced.",[247,791,792,795,796,799],{},[458,793,794],{},"Another sync may be running:"," inspect the process in ",[74,797,798],{},".l\u002Fsync.lock"," before removing a stale lock.",[63,801,802,803,806],{},"See ",[226,804,805],{"href":33},"pull and push"," for recovery details and package size limits.",[808,809,810],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":72,"searchDepth":86,"depth":86,"links":812},[813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828],{"id":60,"depth":86,"text":61},{"id":101,"depth":86,"text":104},{"id":137,"depth":86,"text":140},{"id":153,"depth":86,"text":156},{"id":188,"depth":86,"text":189},{"id":232,"depth":86,"text":233},{"id":274,"depth":86,"text":275},{"id":284,"depth":86,"text":285},{"id":330,"depth":86,"text":333},{"id":403,"depth":86,"text":404},{"id":442,"depth":86,"text":443},{"id":452,"depth":86,"text":453},{"id":546,"depth":86,"text":547},{"id":695,"depth":86,"text":696},{"id":708,"depth":86,"text":709},{"id":732,"depth":86,"text":733},"Recover expired sessions, fix AWS access, and resolve synchronization conflicts.","md",null,{},true,{"title":45,"description":829},"VqQ0vv256c2GxgSmQuoAbnuVjB3woPM0P409yHZFI4E",[837,839],{"title":41,"path":42,"stem":43,"description":838,"children":-1},"CLI l syntax, options, configuration priority, and exit status.",{"title":49,"path":50,"stem":51,"description":840,"children":-1},"Distinguish CLI v2.0.0 behavior from unreleased compatibility fixes.",1790260505908]