Felkoder
Koderna som Lifecycle-modulen nekar en begäran med — plattformsavvikelser och plattformens säkerhetskopior — vad var och en betyder och vad du gör åt den.
Alla rutter nedan ligger under /lifecycle. Portalen gör om de här koderna till egna meddelanden;
den här sidan är till för att läsa dem i ett API-svar, till exempel från stsh api. Ett avslag
innan en rutt körs behåller de plattformsgemensamma koderna — en saknad behörighet är FORBIDDEN
— se Statuskoder.
Två former av svarskropp
Modulen svarar i två former, och koden finns i code i båda.
Koder för plattformsavvikelser skrivs i PascalCase, i plattformens vanliga felkropp — se Felkroppen. Extra fält ligger på översta nivån:
{
"error": "A platform drift scan is already running.",
"code": "ScanRunning",
"module": "lifecycle",
"correlationId": "3f2b9c1e-6d4a-4e0b-9a51-2c7d8e0f4b6a",
"scanId": "8d0c6f4e-2a71-4b4c-9d55-6f1e0b7a2c93"
}Koder för plattformens säkerhetskopior skrivs i kebab-case, i en problem details-kropp
(application/problem+json). Koden är också title, meningen för människor finns i detail, och
det finns inget fält error:
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.10",
"title": "backup-in-progress",
"status": 409,
"detail": "backup platform-manual-20260927-081500 is InProgress; Velero runs backups one at a time, so a second request would only queue behind it",
"code": "backup-in-progress",
"backup": "platform-manual-20260927-081500",
"phase": "InProgress",
"module": "lifecycle",
"correlationId": "3f2b9c1e-6d4a-4e0b-9a51-2c7d8e0f4b6a"
}Plattformsavvikelser
Vad de här avslagen skyddar beskrivs i Inställningar ändrade för hand. De kommer från tre rutter:
| Rutt | Vad den gör |
|---|---|
POST /lifecycle/platform-drift/scan |
Startar en kontroll — Kontrollera nu |
POST /lifecycle/platform-drift/adopt |
Adopterar en ändring i konfigurationen, med scanId, configKey, liveValue och acknowledge |
POST /lifecycle/rollouts/executions/{id}/revert-platform-drift |
Sätter tillbaka releasens värden på en pausad utrullning, med acknowledge och eventuellt fields |
AcknowledgementRequired
400 vid adoptering och återställning. Kroppen innehöll inte "acknowledge": true; en begäran
utan kropp räknas som inte bekräftad. Vid återställning kontrolleras det innan utrullningen slås
upp, så ett okänt utrullnings-id utan bekräftelse får den här koden i stället för 404.
Skicka begäran igen med "acknowledge": true, när du har läst vad den ändrar: att adoptera skriver
om plattformskonfigurationen, och att återställa gör att det som ändrats för hand går förlorat.
NotPausedOnPlatformDrift
409 vid återställning. Utrullningen är inte pausad på grund av plattformsavvikelser: den körs, är avslutad eller är pausad av ett annat skäl. Meddelandet anger dess fas och skälet till pausen.
Det finns inget att återställa. Återuppta eller avbryt utrullningen som dess sida erbjuder, eller ladda om den för att se hur den ser ut nu.
OperatorCapabilityMissing
409 vid återställning. Operatorn som körs i klustret är för gammal för att skriva över manuella ändringar.
Behåll ändringen eller ångra den själv, och återuppta sedan utrullningen — se När en releaseutrullning pausar på grund av den. Med en uppgraderad operator går det att återställa i senare utrullningar.
PlatformDriftChanged
409 vid återställning. Ändringarna i klustret är inte längre de du granskade: fields som du
skickade stämmer inte med de nuvarande ändringarna, en ändrad komponent finns inte längre i den
batch som utrullningen är pausad på, eller klustret nekade återställningen eftersom objektet
flyttade sig medan den gjordes.
Kroppen innehåller platformDrift, de nuvarande ändringarna, var och en med component, step,
kind, namespace, name, field, manager och message. Granska dem och skicka
återställningen igen med dem som fields.
ScanRunning
409 vid kontroll. En kontroll pågår redan. Kroppen innehåller dess scanId.
Vänta tills den är klar och läs sedan resultatet med GET /lifecycle/platform-drift.
RolloutBusy
409 vid kontroll och adoptering. En utrullning pågår eller är pausad; en pausad utrullning räknas tills den har återupptagits till slutet, avbrutits eller rullats tillbaka.
Låt utrullningen bli klar eller avbryt den först. När en adoptering nekats så här väntar du på kontrollen som följer efter utrullningen och granskar dess resultat innan du adopterar.
ScanStale
409 vid adoptering. scanId som du skickade saknas eller är inte den senaste avslutade
kontrollen, en kontroll pågår just nu, eller ingen kontroll har avslutats än.
Läs den senaste kontrollen med GET /lifecycle/platform-drift, granska den och adoptera med dess
scanId.
DriftChanged
409 vid adoptering. liveValue som du skickade saknas eller är inte det värde som den senaste
kontrollen hittade i klustret.
Granska den senaste kontrollen igen och adoptera värdet den visar.
ConfigChanged
409 vid adoptering. Plattformskonfigurationen, Secret stackship-install-config, har ändrats
sedan kontrollen läste den, innehåller inte längre värdet som kontrollen såg, eller saknas. Koden
kommer också när en annan ändring skrivs till konfigurationen i samma ögonblick. Varje ändring av
konfigurationen räknas — att byta plattformens säkerhetskopiemål är en.
Starta en kontroll med Kontrollera nu, granska resultatet och adoptera igen.
NotAdoptable
404 vid adoptering. Den senaste kontrollen erbjuder ingen adoptering av den configKey du
skickade: ändringen kan inte adopteras, eller nyckeln är inte en plattformsinställning (platform.
följt av dess namn) vars värde är text. Det kontrolleras före liveValue och före en pågående
utrullning.
Kontrollens resultat säger varför en ändring inte kan adopteras — se
När en ändring inte kan adopteras. Låt en releaseutrullning
sätta tillbaka värdet, ångra ändringen för hand eller skriv in den i stackship-install-config
själv.
Plattformens säkerhetskopior
Vad de här rutterna gör beskrivs i Hantera plattformens säkerhetskopior.
schedule-missing
409 vid POST /lifecycle/backups och PUT /lifecycle/backups/schedule. Velero-schemat
platform-daily finns inte. En manuell säkerhetskopia tar sin omfattning därifrån, så ingen kan
tas, och det finns inget schema att ändra. Schemat kontrolleras innan begäran valideras.
Rulla ut Velero-beroendet, som skriver schemat igen — se Ändra det dagliga schemat.
backup-in-progress
409 vid POST /lifecycle/backups. En säkerhetskopia som tagits med Säkerhetskopiera nu,
eller via den här rutten, står fortfarande i kö eller pågår och startades för mindre än tre timmar
sedan. En daglig säkerhetskopiering som pågår ger inte den här koden. Kroppen innehåller backup,
namnet på säkerhetskopian, och phase, dess fas i Velero eller queued.
Vänta tills den säkerhetskopian är klar. En som har fastnat slutar räknas tre timmar efter att den startade — se Ta en säkerhetskopia nu.
invalid-target
400 vid PUT /lifecycle/backups/target. Målet är inte giltigt: bucket, åtkomstnyckel-id eller
hemlig åtkomstnyckel saknas, slutpunkten är inte en absolut http- eller https-adress, en annan
leverantör än aws anges, eller CA-certifikatet innehåller något annat än giltiga PEM-certifikat.
detail säger vilket.
Rätta begäran och skicka den igen.
target-rejected
422 vid PUT /lifecycle/backups/target. Det gick inte att lista bucketen med de nya
uppgifterna: lagringen nekade dem, eller gick inte att nå inom tio sekunder. detail innehåller
lagringens svar. Ingenting sparades.
Rätta uppgifterna, slutpunkten eller bucketen. POST /lifecycle/backups/target/test kör samma test
utan att spara och svarar aldrig med en felkod — se
Byt säkerhetskopiemål.
target-not-applied
409 vid PUT /lifecycle/backups/target. Det nya målet kunde inte tillämpas, av ett av flera
skäl som bara detail skiljer åt:
- Plattformen saknar sparad konfiguration: ingen
stackship-install-config, eller en utan konfiguration i, på en plattform som installerades innan installationsprogrammet sparade den. Kör installationsprogrammet igen för att spara den. - Den sparade konfigurationen går inte att läsa som en installationsbegäran. Kör installationsprogrammet igen.
- Velero-beroendet kan inte rullas ut igen från det nya målet, eller utrullningen som tillämpar det
validerades inte;
detailinnehåller skälet eller planens varningar. - Det tidigare målet kunde inte skrivas tillbaka efter att ändringen nekats. Det sparade målet
stämmer då inte med klustret: rätta
stackship-install-configför hand.
Utom i det sista fallet ligger det tidigare målet kvar.
rollout-in-flight
409 vid PUT /lifecycle/backups/target. En annan utrullning pågår eller är pausad, så
utrullningen som tillämpar målet kan inte starta. Det tidigare målet ligger kvar.
Låt utrullningen bli klar, eller avbryt den, och spara målet igen.
target-changed
409 vid PUT /lifecycle/backups/target. Plattformskonfigurationen skrevs av någon annan mellan
att den lästes och att det nya målet sparades. Varje ändring räknas, även att en ändrad inställning
adopterades. Ingenting sparades.
Ladda om målet och spara det igen.
preflight-failed
409 vid PUT /lifecycle/backups/target. En kontroll före uppgradering för utrullningen som
tillämpar målet misslyckades. De misslyckade kontrollerna anges bara i detail. Ett misslyckande
kan inte åsidosättas från den här rutten, och det tidigare målet ligger kvar.
Åtgärda det som kontrollen rapporterar — se Kontroller före uppgradering — och spara målet igen.
invalid-schedule
400 vid PUT /lifecycle/backups/schedule. cron är inte ett cron-uttryck med fem fält, eller
ttlHours är mindre än 1.
Rätta begäran och skicka den igen.
invalid-cluster
400 vid POST /lifecycle/backups/archiving/suspend och …/resume. Kroppen anger inte
databasklustret: namespace eller name är tomt.
Skicka båda.
cluster-not-found
404 vid POST /lifecycle/backups/archiving/suspend och …/resume. Det finns inget
databaskluster med det namespace och name.
Kontrollera båda; varningen på sidan Säkerhetskopior anger databasens namn.
archiving-not-configured
409 vid POST /lifecycle/backups/archiving/suspend. Databasen arkiverar inte till
säkerhetskopiemålet, så det finns inget att pausa.
archiving-healthy
409 vid POST /lifecycle/backups/archiving/suspend. Databasen fylls inte upp bakom ett arkiv
som inte fungerar, eller så är dess arkivering redan pausad. Meddelandet säger i båda fallen att
databasen inte är under arkivtryck.
Att pausa öppnar ett fönster som inte går att återställa, så det nekas om inte arkivet misslyckas. Om arkiveringen redan är pausad återupptar du den när målet fungerar — se En databas fylls upp bakom ett arkiv som inte fungerar.
archiving-not-suspended
409 vid POST /lifecycle/backups/archiving/resume. Databasens arkivering pausades inte från
sidan Säkerhetskopior eller via det här API:t, och inget tidigare återupptagande väntar
fortfarande på sin bassäkerhetskopia.
Det finns inget att återuppta.