Hoppa till innehållet
Stackship-dokumentation English

Stackship-plattformenAnvändareMaskinöversatt

Fel vid filåtkomst

Felkoderna som filrutterna för appar och containerinstanser svarar med — status, orsak och vad du gör.

Appar och containerinstanser låter dig läsa och ändra filerna på sina beständiga volymer — i portalen, se Filer och Bläddra bland filer på en volym, och via de här rutterna under /boundaries/{boundaryId}/resourcegroups/{resourceGroupName}/resources/{type}/{name}, där {type} är apps eller containerinstances:

Rutt Vad den gör
GET /files?path=&component= Listar en katalog
GET /files/download?path=&component= Laddar ner en fil
GET /files/archive?path=&component= Laddar ner en katalog som ett .tar-arkiv
POST /files/upload?path=&name=&component= Laddar upp anropets kropp som filen name i katalogen path
POST /files/directory Skapar en katalog, {"path": "…", "component": "…"}
POST /files/move Byter namn på eller flyttar en fil eller katalog, {"from": "…", "to": "…", "component": "…"}
DELETE /files?path=&component=&recursive= Tar bort en fil, eller en katalog med recursive=true

Att läsa kräver apps/readFiles eller containerinstance/readFiles; att ändra kräver apps/writeFiles eller containerinstance/writeFiles.

Felkroppen

En filrutt svarar på ett fel i problemformatet: title är en mening som "This app is not running.", detail lägger till något eller är tomt, och code är en av koderna nedan. module är apps eller containerinstances, beroende på vilken modul som betjänar rutten; koderna dokumenteras här, under plattformens kärna, eftersom de betyder samma sak för båda. Ingen kod lägger till egna fält.

Ett 502 når dig med bara error, code, module och correlationId — se Fel från gatewayen.

Åtkomstkontrollerna kommer först och använder de plattformsgemensamma koderna: en resurs som inte finns svarar 404 med NOT_FOUND, och en behörighet som saknas svarar 403 med FORBIDDEN. Det är inte samma koder som not_found och forbidden med gemener på den här sidan.

En nedladdning eller ett arkiv som misslyckas efter att överföringen har börjat slutar med en bruten anslutning i stället för en felkropp.

Resursen och dess volymer

no_pods

Status 409, på alla filrutter.

Appen eller instansen kör inte: den är stoppad eller nedskalad till noll, så det finns inget att läsa filerna genom. detail lyder "Start the app to manage its files." (eller instansen).

Vad du gör: starta appen eller instansen och försök igen.

no_agent

Status 409, på alla filrutter.

Resursen kör, men ingen av dess poddar kan hantera filer: den har ingen beständig volym, eller den skapades innan filbläddring fanns och har inte startats om sedan dess.

Vad du gör: ge resursen beständig lagring, eller starta om den så att den får filbläddring.

unknown_component

Status 404, på alla filrutter som tar component.

component anger ingen komponent med en volym att bläddra i — antingen finns ingen sådan komponent, eller så har den ingen beständig volym. detail är tomt.

Vad du gör: kontrollera namnet. En lyckad listning anger komponenten som den läste i fältet component.

ambiguous_component

Status 400, på alla filrutter.

Anropet anger ingen component, och mer än en av resursens komponenter har en volym — till exempel en app med slots, eller en containerinstans med flera komponenter som har lagring.

Vad du gör: ange vilken med component.

Sökvägar

forbidden_path

Status 403, på alla filrutter.

Sökvägen ligger inte i någon av resursens volymer: den är inte absolut, innehåller styrtecken, klättrar ut med .., eller ligger utanför volymerna som listningen anger i roots. För en flytt gäller det både from och to. En nedladdning, ett arkiv eller en borttagning utan path får också den här koden. detail är tomt.

Vad du gör: använd en absolut sökväg under någon av roots.

forbidden

Status 403, på alla filrutter.

Resursen avvisade sökvägen när den skulle utföra åtgärden. title är densamma som för forbidden_path; detail skiljer fallen åt:

  • "path is outside the volumes this agent serves" — sökvägen går genom en symbolisk länk som leder ut ur volymen, eller så ligger ena änden av en flytt utanför volymerna;
  • "permission denied" — filsystemet tillåter inte åtgärden på den här filen eller katalogen;
  • "cannot delete the volume root itself" — en borttagning av en volyms översta katalog.

Vad du gör: välj en annan sökväg, eller ändra filens behörigheter inifrån resursen.

not_found

Status 404, på alla filrutter.

Sökvägen finns inte: katalogen som ska listas, filen eller katalogen som ska laddas ner, flyttas eller tas bort, eller katalogen som en uppladdning ska hamna i.

Vad du gör: lista den överordnade katalogen igen för att se vad som finns där. Skapa en katalog som saknas med POST /files/directory innan du laddar upp till den.

exists

Status 409, främst på rutten för att flytta.

Målet för en flytt finns redan.

En uppladdning ersätter en befintlig fil med samma namn, och att skapa en katalog som redan finns lyckas; inget av dem svarar med den här koden.

Vad du gör: välj ett annat mål, eller ta bort det som redan finns först.

is_a_directory

Status 400, på rutterna för att ladda ner, ladda upp och ta bort.

Åtgärden kräver en fil men sökvägen är en katalog: en nedladdning av en katalog, en uppladdning vars name är en befintlig katalog, eller en borttagning av en katalog utan recursive=true.

Vad du gör: ladda ner en katalog med /files/archive, välj ett annat name för uppladdningen, eller ta bort med recursive=true — vilket tar bort allt i katalogen.

not_a_directory

Status 400, på rutterna för att lista och arkivera.

Åtgärden kräver en katalog men sökvägen är en fil. En symbolisk länk räknas som en fil, också när den pekar på en katalog.

Vad du gör: ladda ner en fil med /files/download, eller lista katalogen som den ligger i.

Uppladdningar

too_large

Status 413, på rutten för att ladda upp.

Uppladdningens Content-Length är större än vad modulen tar emot i en uppladdning. detail anger modulens gräns i byte. En uppladdning kan också avvisas innan den når modulen, med en annan status och utan den här koden.

Vad du gör: ladda upp en mindre fil, eller dela upp den i flera.

invalid_argument

Status 400, på rutten för att ladda upp.

Uppladdningen saknar något som den behöver, och detail säger vad: katalogen i path, ett filnamn i name (ett namn som slutar med / har inget), eller en header Content-Length — en uppladdning som skickas i delar har ingen.

Vad du gör: lägg till det som detail anger. Anger detail inget av detta rapporterar du felet med correlationId.

size_mismatch

Status 400, på rutten för att ladda upp.

Färre byte kom fram än uppladdningens Content-Length angav; oftast bröts anslutningen under uppladdningen. detail anger båda talen.

Vad du gör: ladda upp filen igen.

Fel på volymen eller i plattformen

io_error

Status 502, på alla filrutter.

Volymen klarade inte åtgärden — till exempel för att den är full eller skrivskyddad. Filsystemets orsak står i detail, som utelämnas när 502-svaret når dig genom gatewayen (se Felkroppen). Vissa anrop som inte kan lyckas som de är ställda rapporteras också på det här sättet: en flytt till en katalog som inte finns eller till en annan volym, en katalog som skapas där en fil är i vägen, en listning av en sökväg som går genom en fil, och en borttagning som filsystemet inte tillåter.

Vad du gör: kontrollera att volymen har ledigt utrymme och är skrivbar, och att anropet inte är något av fallen ovan. Annars försöker du igen, och rapporterar felet med correlationId om det består; plattformens loggar har orsaken.

channel_error

Status 502, på alla filrutter.

Plattformen kunde inte slå upp resursens poddar i dess kluster.

Vad du gör: försök igen om en stund. Om felet består rapporterar du det med correlationId.

no_result_frame

Status 502, på alla filrutter.

Plattformen körde åtgärden i resursens podd men fick inget svar som den kunde läsa — också när den inte alls kunde köra åtgärden där.

Vad du gör: försök igen; misslyckas det igen startar du om resursen. Om felet består rapporterar du det med correlationId.

unsupported_protocol

Status 502, på alla filrutter.

Komponenten för filbläddring i resursens poddar har en annan version än den som plattformen förväntar sig.

Vad du gör: starta om resursen så att den får den aktuella versionen. Hjälper inte det rapporterar du det till din plattformsadministratör.