[{"data":1,"prerenderedAt":525},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Ferrors":3,"docs-navigation-links":493},{"id":4,"title":5,"body":6,"description":485,"extension":486,"meta":487,"navigation":488,"path":489,"seo":490,"stem":491,"__hash__":492},"docs\u002Fdocs\u002Ferrors.md","Errors and statuses",{"type":7,"value":8,"toc":479},"minimark",[9,13,18,139,143,150,227,230,278,282,359,369,438,442,475],[10,11,12],"p",{},"HTTP success means Epho accepted or read the request. A run can still settle as\nfailed, timed out, or canceled, so asynchronous clients must inspect the turn\nstatus.",[14,15,17],"h2",{"id":16},"http-status-codes","HTTP status codes",[19,20,21,34],"table",{},[22,23,24],"thead",{},[25,26,27,31],"tr",{},[28,29,30],"th",{},"Status",[28,32,33],{},"Meaning",[35,36,37,49,59,69,79,89,99,109,119,129],"tbody",{},[25,38,39,46],{},[40,41,42],"td",{},[43,44,45],"code",{},"200",[40,47,48],{},"Successful read or synchronous SSE stream",[25,50,51,56],{},[40,52,53],{},[43,54,55],{},"201",[40,57,58],{},"Signup or device OAuth ticket created",[25,60,61,66],{},[40,62,63],{},[43,64,65],{},"202",[40,67,68],{},"Turn queued or cancellation accepted",[25,70,71,76],{},[40,72,73],{},[43,74,75],{},"401",[40,77,78],{},"Missing or invalid Epho bearer token",[25,80,81,86],{},[40,82,83],{},[43,84,85],{},"402",[40,87,88],{},"Team has no positive compute credit",[25,90,91,96],{},[40,92,93],{},[43,94,95],{},"403",[40,97,98],{},"Invalid device OAuth polling secret",[25,100,101,106],{},[40,102,103],{},[43,104,105],{},"404",[40,107,108],{},"Resource not found, outside the token's team, or unsupported OAuth provider",[25,110,111,116],{},[40,112,113],{},[43,114,115],{},"409",[40,117,118],{},"Another turn is already running in this chat",[25,120,121,126],{},[40,122,123],{},[43,124,125],{},"422",[40,127,128],{},"Request validation failed",[25,130,131,136],{},[40,132,133],{},[43,134,135],{},"429",[40,137,138],{},"Signup or OAuth polling rate limit exceeded",[14,140,142],{"id":141},"validation-errors","Validation errors",[10,144,145,146,149],{},"Laravel validation responses use an ",[43,147,148],{},"errors"," object:",[151,152,157],"pre",{"className":153,"code":154,"language":155,"meta":156,"style":156},"language-json shiki shiki-themes github-dark","{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"model\": [\n      \"Unsupported model for the selected harness.\"\n    ]\n  }\n}\n","json","",[43,158,159,168,185,194,203,209,215,221],{"__ignoreMap":156},[160,161,164],"span",{"class":162,"line":163},"line",1,[160,165,167],{"class":166},"s95oV","{\n",[160,169,171,175,178,182],{"class":162,"line":170},2,[160,172,174],{"class":173},"sDLfK","  \"message\"",[160,176,177],{"class":166},": ",[160,179,181],{"class":180},"sU2Wk","\"The given data was invalid.\"",[160,183,184],{"class":166},",\n",[160,186,188,191],{"class":162,"line":187},3,[160,189,190],{"class":173},"  \"errors\"",[160,192,193],{"class":166},": {\n",[160,195,197,200],{"class":162,"line":196},4,[160,198,199],{"class":173},"    \"model\"",[160,201,202],{"class":166},": [\n",[160,204,206],{"class":162,"line":205},5,[160,207,208],{"class":180},"      \"Unsupported model for the selected harness.\"\n",[160,210,212],{"class":162,"line":211},6,[160,213,214],{"class":166},"    ]\n",[160,216,218],{"class":162,"line":217},7,[160,219,220],{"class":166},"  }\n",[160,222,224],{"class":162,"line":223},8,[160,225,226],{"class":166},"}\n",[10,228,229],{},"Common causes include:",[231,232,233,249,252,255,258,261,264,267],"ul",{},[234,235,236,237,240,241,244,245,248],"li",{},"missing ",[43,238,239],{},"prompt",", ",[43,242,243],{},"harness",", or ",[43,246,247],{},"model",";",[234,250,251],{},"an unsupported harness\u002Fmodel pair;",[234,253,254],{},"a missing provider key for a paid model;",[234,256,257],{},"an unsupported CPU or memory value;",[234,259,260],{},"invalid environment-variable names or limits;",[234,262,263],{},"malformed input files;",[234,265,266],{},"duplicate or reserved MCP server names;",[234,268,269,270,273,274,277],{},"sending ",[43,271,272],{},"env"," or ",[43,275,276],{},"mcp_servers"," while resuming a chat.",[14,279,281],{"id":280},"turn-statuses","Turn statuses",[19,283,284,295],{},[22,285,286],{},[25,287,288,290,293],{},[28,289,30],{},[28,291,292],{},"Terminal",[28,294,33],{},[35,296,297,310,323,335,347],{},[25,298,299,304,307],{},[40,300,301],{},[43,302,303],{},"processing",[40,305,306],{},"no",[40,308,309],{},"Queued, provisioning, resuming, or running",[25,311,312,317,320],{},[40,313,314],{},[43,315,316],{},"completed",[40,318,319],{},"yes",[40,321,322],{},"Agent finished successfully",[25,324,325,330,332],{},[40,326,327],{},[43,328,329],{},"failed",[40,331,319],{},[40,333,334],{},"Launch or agent execution failed",[25,336,337,342,344],{},[40,338,339],{},[43,340,341],{},"timed_out",[40,343,319],{},[40,345,346],{},"Agent timed out or stopped heartbeating",[25,348,349,354,356],{},[40,350,351],{},[43,352,353],{},"canceled",[40,355,319],{},[40,357,358],{},"Client requested cancellation",[10,360,361,362,365,366,368],{},"Read the ",[43,363,364],{},"error"," field when a terminal status is not ",[43,367,316],{},".",[151,370,372],{"className":153,"code":371,"language":155,"meta":156,"style":156},"{\n  \"turn_id\": \"01K...\",\n  \"status\": \"failed\",\n  \"output\": null,\n  \"error\": \"Failed to start the run.\",\n  \"artifacts\": []\n}\n",[43,373,374,378,390,402,414,426,434],{"__ignoreMap":156},[160,375,376],{"class":162,"line":163},[160,377,167],{"class":166},[160,379,380,383,385,388],{"class":162,"line":170},[160,381,382],{"class":173},"  \"turn_id\"",[160,384,177],{"class":166},[160,386,387],{"class":180},"\"01K...\"",[160,389,184],{"class":166},[160,391,392,395,397,400],{"class":162,"line":187},[160,393,394],{"class":173},"  \"status\"",[160,396,177],{"class":166},[160,398,399],{"class":180},"\"failed\"",[160,401,184],{"class":166},[160,403,404,407,409,412],{"class":162,"line":196},[160,405,406],{"class":173},"  \"output\"",[160,408,177],{"class":166},[160,410,411],{"class":173},"null",[160,413,184],{"class":166},[160,415,416,419,421,424],{"class":162,"line":205},[160,417,418],{"class":173},"  \"error\"",[160,420,177],{"class":166},[160,422,423],{"class":180},"\"Failed to start the run.\"",[160,425,184],{"class":166},[160,427,428,431],{"class":162,"line":211},[160,429,430],{"class":173},"  \"artifacts\"",[160,432,433],{"class":166},": []\n",[160,435,436],{"class":162,"line":217},[160,437,226],{"class":166},[14,439,441],{"id":440},"retry-guidance","Retry guidance",[231,443,444,450,456,462,472],{},[234,445,446,447,449],{},"Retry ",[43,448,135],{}," only after respecting the response's rate-limit timing.",[234,451,452,453,455],{},"Do not retry ",[43,454,125],{}," without changing the request.",[234,457,458,459,461],{},"For ",[43,460,115],{},", wait for the active turn or use a different chat.",[234,463,464,465,467,468,471],{},"A submission that returned ",[43,466,65],{}," should be tracked through its existing\n",[43,469,470],{},"turn_id","; do not create a duplicate turn just because polling is quiet.",[234,473,474],{},"Lifecycle events and SSE keepalives distinguish queued or quiet work from a\ndisconnected client.",[476,477,478],"style",{},"html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}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);}",{"title":156,"searchDepth":170,"depth":170,"links":480},[481,482,483,484],{"id":16,"depth":170,"text":17},{"id":141,"depth":170,"text":142},{"id":280,"depth":170,"text":281},{"id":440,"depth":170,"text":441},"Handle HTTP failures and terminal run outcomes consistently.","md",{},true,"\u002Fdocs\u002Ferrors",{"title":5,"description":485},"docs\u002Ferrors","J0-IKTi9bRaXukYuGu5TZXem4T3jizHgo0rBgF6CM94",[494,497,500,503,504,507,510,513,516,519,522],{"path":495,"title":496},"\u002Fdocs","Overview",{"path":498,"title":499},"\u002Fdocs\u002Fauthentication","Authentication",{"path":501,"title":502},"\u002Fdocs\u002Fchats-and-turns","Chats and turns",{"path":489,"title":5},{"path":505,"title":506},"\u002Fdocs\u002Ffiles-and-repositories","Files and repositories",{"path":508,"title":509},"\u002Fdocs\u002Fharnesses-and-models","Harnesses and models",{"path":511,"title":512},"\u002Fdocs\u002Fmcp-and-environment","MCP and environment",{"path":514,"title":515},"\u002Fdocs\u002Fquickstart","Quickstart",{"path":517,"title":518},"\u002Fdocs\u002Fresources-and-billing","Resources and billing",{"path":520,"title":521},"\u002Fdocs\u002Fresuming-chats","Resuming chats",{"path":523,"title":524},"\u002Fdocs\u002Frunning-agents","Running agents",1785310516454]