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.