Blogi

Claude Coden palautus: turvallinen tila, /cd ja varamallit

Markdown

Claude Coden vianmääritys turvallisella tilalla, /cd-komennolla, varamalleilla ja asetusten palautuksella. Tarkistusten järjestys ja alkuperäiset rajoitukset.

Lue koko artikkeli

Käytännön materiaalia agenttien kanssa työskentelyyn: Ailoot-dokumentaatio.

Mitä Claude Codessa muuttuu kesäkuussa 2026?

Tärkeimmät asiat

Anthropic lisäsi 8. kesäkuuta 2026 Claude Code v2.1.169:ään --safe-mode-lipun ja /cd-komennon. Kaksi päivää aiemmin v2.1.166 toi käyttöön varamallit, joita voi olla ketjussa enintään 3. Nämä kolme ominaisuutta ratkaisevat vibe-koodaajien yleisimmän ongelman: ”kaikki on mennyt sekaisin, en tiedä kenen syy se on enkä halua menettää tuntia uudelleenasennukseen.”

Aiemmin Claude Coden alkaessa käyttäytyä oudosti – loputon latausympyrä, kaatuminen käynnistyksessä, agentti sivuuttaa CLAUDE.md-tiedoston säännöt tai hook ei käynnisty ilmoittamatta siitä – tilanteesta pääsi eteenpäin vain yhdellä tavalla: kommentoimalla .claude/settings.json-tiedoston osia manuaalisesti pois käytöstä, poistamalla MCP-palvelimia käytöstä yksi kerrallaan tai pahimmassa tapauksessa poistamalla ~/.claude-kansion ja asentamalla kaiken uudelleen. Eräässä kuvatussa tapauksessa ~/.claude poistettiin, ja puolitoista tuntia koottu MCP-palvelimen määritys menetettiin. Myöhemmin selvisi, että syynä oli yksi rivi CLAUDE.md-tiedostossa ja että se olisi löytynyt 10 sekunnissa – mutta tämä selvisi vasta täydellisen palautuksen jälkeen.

Kesäkuussa 2026 Anthropic otti käyttöön kolme mekanismia, jotka muuttavat tätä tilannetta. Lyhyesti: mitä julkaistiin ja milloin:

VersioPäivämääräUudet ominaisuudet
2.1.1666. kesäkuuta 2026fallbackModel-asetus + --fallback-model-lippu vuorovaikutteisille istunnoille
2.1.1698. kesäkuuta 2026--safe-mode-lippu ja CLAUDE_CODE_SAFE_MODE-ympäristömuuttuja, /cd-komento
2.1.17612. kesäkuuta 2026Korjaus: /cd ja worktree-vaihto eivät enää näyttäneet vanhaa git-haaraa

Alla esitellään jokainen mekanismi vaihe vaiheelta sekä järjestys, jossa niitä kannattaa käyttää, kun Claude Code -istunto ajautuu ongelmiin.

Mikä rikkoo Claude Coden useimmiten?

Tärkeimmät asiat

Kuvattujen kokemusten perusteella Claude Code hajoaa vibe-koodaajilla tavallisesti neljästä syystä: paisunut ja ristiriitaisia sääntöjä sisältävä CLAUDE.md, väärän poistumiskoodin antava hook, äänettömästi epäonnistuva MCP-palvelin ja päällekkäiset asetukset settings.json-tiedoston kolmella tasolla. Syyllinen on yksi, vianmääritys kestää minuutteja, mutta paniikki saa ihmiset tarttumaan heti rm -rf-komentoon.

Kuvatussa esimerkissä CLAUDE.md koottiin ensin 80 rivin mittaiseksi – ja se toimi kuukauden. Toisen kuukauden aikana alkoi näkyä, että Claude rikkoi kerran viikossa kaikkia asetettuja sääntöjä: koski .env-tiedostoon, suoritti git push --force -komennon ja kaiveli node_modules-kansiossa. Ei pahantahtoisuuttaan – se vain unohti. Kerran .gitignore poistettiin, eikä syy selvinnyt heti. Tätä tilannetta käsitellään tarkemmin CLAUDE.md-oppaassa.

Kun CLAUDE.md kasvaa yli 400 riviin, se alkaa aiheuttaa huomaamattomia ongelmia: se vie merkittävän osan konteksti-ikkunasta istunnon alussa ja laimentaa tärkeät ohjeet toissijaisilla. Claude lukee tiedoston edelleen muodollisesti, joten ulospäin näyttää siltä, että ”säännöt ovat olemassa, mutta ne eivät toimi” – tyypillinen merkki paisuneesta ohjeistuksesta.

Hookit ovat toiseksi yleisin ongelmien lähde. Claude Code hooks sisältää yksityiskohdan, jota Anthropic ei painota.

Eli sys.exit(1) Python-hookissa (tai mikä tahansa Unix-käytännön mukainen ”epäonnistui virheen takia”) ei pysäytä Claudea. Vain koodi 2 estää toiminnan. Kuvatussa tapauksessa hookia pidettiin ”ehdottomana kieltona”, mutta käytännössä se kirjasi valituksen ja salli toiminnon.

MCP-palvelimet ovat kolmas kerros, ja nekin hajoavat omalla tavallaan.

Oire näyttää usein samalta: MCP-komennot ovat käytettävissä, mutta palauttavat failed ilman stack tracea. Lisätietoja MCP:n määrittämisestä ja palvelinten lisäämisestä komennolla claude mcp add on erillisessä oppaassa.

Neljäs ongelmien lähde on settings.json-tiedoston kolmikerroksinen hierarkia. Sinulla voi olla ~/.claude/settings.json (käyttäjätaso), projektin juuren .claude/settings.json (projektitaso), .claude/settings.local.json (paikallinen taso) ja mahdollisesti yrityksen ylläpitäjän hallinnoimia asetuksia. Ne yhdistetään prioriteettisääntöjen mukaan. Kun joku lisää MCP-palvelimen projektitasolle ja sinulla on vastaava merkintä eri käynnistysmäärityksellä käyttäjätasolla, syntyy huomaamaton ristiriita, joka näyttää siltä kuin ”Claude Code olisi rikki”.

Miten --safe-mode toimii ja mitä se poistaa käytöstä?

Tärkeimmät asiat

claude --safe-mode käynnistää Claude Coden niin, että mukautukset on poistettu kokonaan käytöstä: CLAUDE.md, liitännäiset, skills, hookit, MCP-palvelimet, käyttäjän komennot, agentit, tulostustyylit, työnkulut ja näppäinsidonnat. Valtuutus, mallin valinta, sisäänrakennetut työkalut ja käyttöoikeudet säilyvät. Tämä on diagnostiikkatyökalu: jos ongelma katoaa turvallisessa tilassa, syynä on jokin lisäämäsi kerros.

Anthropicin alkuperäinen muotoilu v2.1.169:n muutoslokissa kuuluu näin:

Lisätty --safe-mode-lippu (ja CLAUDE_CODE_SAFE_MODE) Claude Coden käynnistämiseen mukautukset poistettuina käytöstä (CLAUDE.md, liitännäiset, skills, hookit, MCP-palvelimet) diagnostiikkaa varten.

— Anthropic Claude Code -muutosloki, https://code.claude.com/docs/en/changelog

Anthropic täsmentää asiaa mallin määritystä käsittelevässä dokumentaatiossa:

Voit tarkistaa, ovatko mukautukset syyllisiä, käynnistämällä istunnon komennolla claude --safe-mode. Se poistaa käytöstä CLAUDE.md-tiedoston, skillsit, MCP-palvelimet ja hookit. Git-tila ja hakemistojen nimet eivät ole mukautuksia, joten ne ovat edelleen käytettävissä.

— Anthropicin dokumentaatio – mallin määritys, https://code.claude.com/docs/en/model-config

Tämä on diagnostiikkatyökalu, ei ”puhdas ympäristö”. Turvallinen tila auttaa vastaamaan yhteen kysymykseen: onko ongelma Claude Coden vakiotoiminnassa vai lisätyissä mukautuksissa? Tämä on osa kontekstin suunnittelua – sen hallintaa, mitä Claude näkee ja mitä se ei näe kulloinkin. Jos kaikki toimii turvallisessa tilassa, ongelmalliset kerrokset kannattaa etsiä binäärihaulla. Jos se ei toimi, ongelma liittyy itse asennukseen, valtuutukseen, verkkoon tai infrastruktuuriin, jolloin kannattaa tarkistaa claude doctor ja lokit.

Mitä turvallinen tila poistaa käytöstä (Anthropicin virallinen luettelo – 5 pääkerrosta):

  • CLAUDE.md kaikilla tasoilla (käyttäjä / projekti)
  • Liitännäiset
  • Skillsit
  • Hookit
  • MCP-palvelimet

Mikä toimii edelleen:

  • Valtuutus (OAuth-istunto tai API-avain)
  • Mallin valinta (--model sonnet, --model opus)
  • Sisäänrakennetut työkalut (Read, Write, Bash, Grep ja niin edelleen)
  • Käyttöoikeudet
  • Git-tila
  • Hakemistojen nimet

Tärkeä yksityiskohta: turvallinen tila ei poista yrityksen ylläpitäjän hallinnoimia asetuksia tai käytäntöjä. Jos tiimissänne Bedrock GovCloud tai MDM-määritys asettaa availableModels-arvon, nämä rajoitukset pysyvät voimassa – turvallinen tila poistaa käytöstä vain omat mukautuksesi, ei yrityksen käytäntöjä.

Miten eristät kerroksen ja löydät syyllisen 60 sekunnissa?

Tärkeimmät asiat

Vaihe 1: suorita claude --safe-mode samassa kansiossa, jossa ongelmat ilmenivät. Jos se toimii, ongelma on mukautuksissasi, joten ota kerrokset käyttöön yksi kerrallaan: CLAUDE.md -> hookit -> MCP -> skillsit. Jos se ei toimi turvallisessa tilassakaan, ongelma liittyy tunnistautumiseen, versioon, verkkoon tai käyttöjärjestelmään. Suorita tällöin claude doctor automaattista diagnostiikkaa varten koskematta rm -rf-komentoon.

Vianmääritysskenaario tilanteeseen, jossa Claude Code on ”lakannut kuuntelemasta”. Kaikkien alla olevien komentojen vähimmäisversio on Claude Code v2.1.169. Jos käytössäsi on vanhempi versio, päivitä ensin (npm update -g @anthropic-ai/claude-code tai Anthropicin natiivi asennusohjelma).

  1. Avaa sama kansio, jossa ongelmat ilmenivät.
  2. Suorita claude --safe-mode.
  3. Jos se käynnistyy ongelmitta, tarkista alkuperäinen pyyntösi. Toimiko se? Silloin jokin kerroksista on syyllinen. Siirry vaiheeseen 4.
  4. Jos se ei vieläkään toimi turvallisessa tilassa, älä koske asetuksiin. Suorita ensin claude doctor; tarkista tunnistautuminen, versio ja ristiriitaiset asennukset.

Kun turvallinen tila käynnistyy ongelmitta, ota kerrokset käyttöön yksi kerrallaan aloittaen todennäköisimmästä syyllisestä. Kuvattuun kokemukseen perustuva järjestys:

  1. CLAUDE.md. Suorita claude ilman turvallista tilaa, mutta nimeä tiedosto väliaikaisesti uudelleen: mv CLAUDE.md CLAUDE.md.bak. Jos Claude toimii, tiedosto on syyllinen. Sen jälkeen voit tehdä binäärihaun: jätä puolet riveistä jäljelle ja tarkista.
  2. Hookit. Avaa .claude/settings.json ja aseta hooks-osioon väliaikaisesti []. Käynnistä claude uudelleen. Toimiiko se? Silloin yksi hookeista on syyllinen. Ota ne käyttöön yksi kerrallaan.
  3. MCP-palvelimet. Aseta vastaavasti ~/.claude.json- tai .claude/settings.json-tiedoston mcpServers-osioon väliaikaisesti tyhjä objekti, käynnistä uudelleen ja tarkista.
  4. Skillsit. Siirrä .claude/skills/ väliaikaiseen kansioon. Käynnistä ja tarkista.

Mitä ”väliaikainen uudelleennimeäminen” tarkoittaa? Tiedostoja ei poisteta vianmäärityksen aikana. mv tai git stash mahdollistaa kaiken palauttamisen yhdellä komennolla, jos kyseinen kerros ei osoittaudukaan syylliseksi.

Miten vaihdat työkansiota /cd-komennolla menettämättä kontekstia?

Tärkeimmät asiat

Claude Code 2.1.169+:n /cd <path>-komento vaihtaa työkansion aktiivisessa istunnossa tyhjentämättä prompt-välimuistia. Se on hyödyllinen, kun nykyisen projektin määritys on rikki: voit siirtyä puhtaaseen kansioon, tarkistaa että Claude toimii ja palata takaisin. Aiemmin istunto piti sulkea ja käynnistää uudelleen.

Ote 8. kesäkuuta julkaistusta v2.1.169:n muutoslokista:

Lisätty /cd-komento istunnon siirtämiseen uuteen työkansioon nollaamatta prompt-välimuistia kesken istunnon.

— Anthropic Claude Code -muutosloki, https://code.claude.com/docs/en/changelog

Miksi tästä on hyötyä ongelmia ratkottaessa? Oletetaan, että olet projektikansiossa ~/work/myapp ja Claude Code käyttäytyy oudosti. Aiemmin ainoa tapa tarkistaa ”toimiiko se ylipäätään?” oli sulkea istunto, siirtyä toiseen kansioon ja käynnistää uudelleen. Menetit kontekstin, historian ja lämpimän prompt-välimuistin. Nyt voit toimia näin:

# In the same session:
/cd ~/sandbox/test

Claude siirtyy uuteen kansioon ja lukee sen CLAUDE.md-tiedoston (jos sellainen on) viestinä, ei järjestelmäkehotteen korvaajana – välimuisti siis säilyy. Jos kaikki toimii kansiossa ~/sandbox/test, ongelma oli selvästi kansion ~/work/myapp määrityksissä.

Kesäkuun 12. päivänä v2.1.176 korjasi ikävän regression – /cd näytti vanhan git-haaran täydelliseen uudelleenkäynnistykseen asti. Jos käytössäsi on vanhempi versio, päivitä se tai jätä git status yksinkertaisesti huomiotta muutaman ensimmäisen viestin ajan vaihdon jälkeen – se päivittyy ajan myötä.

Miten määrität varamallit 529-virhettä varten?

Tärkeimmät asiat

Anthropic lisäsi v2.1.166:een fallbackModel-asetuksen – enintään 3 mallin ketjun, jota kokeillaan järjestyksessä, kun ensisijainen malli on ylikuormittunut tai ei käytettävissä. Ketju käynnistyy vain ylikuormituksen ja sellaisten palvelinvirheiden yhteydessä, joita ei voi yrittää uudelleen. Valtuutukseen, laskutukseen, nopeusrajoitukseen ja siirtotiehen liittyvät virheet eivät käynnistä varaketjua – ne noudattavat normaalia uudelleenyrityslogiikkaa.

Kuvatussa tilanteessa pitkä tehtävä suoritetaan projektissa Opus-mallilla kerran viikossa; 10 minuutin kuluttua API palauttaa virheen 529 Overloaded ja istunto kaatuu. Aiemmin piti joko odottaa tai vaihtaa manuaalisesti Sonnnetiin komennolla --model sonnet ja menettää koko lämmitetty konteksti. Suuressa business/-hakemistossa, jossa on second-brain-asetelma, tähän kuluu noin kaksikymmentä minuuttia työtä. Nyt käytössä on asianmukainen mekanismi.

Virallisen dokumentaation tarkka lainaus:

Kun ensisijainen malli on ylikuormittunut, ei käytettävissä tai palauttaa muun palvelinvirheen, jota ei voi yrittää uudelleen, Claude Code voi vaihtaa varamalliin sen sijaan, että pyyntö epäonnistuisi. Valtuutus-, laskutus-, nopeusrajoitus-, pyyntökoon ja siirtotien virheet eivät koskaan käynnistä mallin vaihtamista – ne noudattavat tavallista uudelleenyritys- ja virheenkäsittelypolkua.

— Anthropicin dokumentaatio – mallin määritys, https://code.claude.com/docs/en/model-config

Ja erikseen: näin ketju toimii:

Määritä yksi tai useampi varamalli, niin Claude Code kokeilee niitä järjestyksessä ja näyttää ilmoituksen vaihdon yhteydessä. Vaihto koskee vain nykyistä vuoroa – seuraavassa viestissä kokeillaan taas ensisijaista mallia. Ketjussa voi olla deduplikoinnin jälkeen enintään kolme mallia; ylimääräiset merkinnät ohitetaan.

— Anthropicin dokumentaatio – mallin määritys, https://code.claude.com/docs/en/model-config

Määrityksen voi tehdä kahdella tavalla. CLI:n kautta:

claude --fallback-model sonnet,haiku

~/.claude/settings.json-tiedoston kautta:

{
  "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]
}

Nopeusrajoituksista vielä yksi yksityiskohta. Anthropic ei tarkoituksella välitä 429-virhettä ketjussa eteenpäin, jotta pyyntörajaa ei voi kiertää vaihtamalla seuraavaan malliin. Varamalli toimii vain, kun ensisijainen malli on ylikuormittunut, ei käytettävissä tai palauttaa palvelinvirheen, jota ei voi yrittää uudelleen (esimerkiksi 529 Overloaded). Nopeusrajoituksiin sovelletaan normaalia uudelleenyrityslogiikkaa ja viivettä.

Vielä yksi huomio: kesäkuun 12. päivänä v2.1.174 korjasi regression, jossa tiivistys ei noudattanut --fallback-model-asetusta. Jos pitkä istunto tiivistyy palvelimen ollessa ylikuormittunut, varamallia ei kutsuttu ennen tätä korjausta. Jos työskentelet pitkissä istunnoissa (/compact, /loop yön yli), päivitä vähintään versioon v2.1.174.

Mitä korjata, kun syynä on CLAUDE.md, hook, MCP tai skill?

Tärkeimmät asiat

Kun turvallinen tila tunnistaa syyllisen kerroksen, korjaus riippuu kerroksesta. CLAUDE.md-tiedoston kohdalla käytä binäärihakua tai palaa valmiiseen, alle 200 rivin malliin. Hookin kohdalla tarkista poistumiskoodi (2 estää, 1 ei) ja logiikka. MCP:n kohdalla poista yksi palvelin ja tarkista. Skillin kohdalla tarkista, onko SKILL.md ristiriidassa CLAUDE.md-tiedoston kanssa.

Tässä on konkreettisia strategioita kullekin kerrokselle.

Jos syynä on CLAUDE.md

Avaa tiedosto ja tarkista sen koko. Kuvattujen kokemusten perusteella aktiivisen CLAUDE.md-tiedoston tulisi olla enintään 200 riviä; siirrä loput projektin yhteydessä oleviin reitittimiin ja tukidokumentteihin (koko second-brain-rakenne esitellään second brain -oppaassa). Jos rivejä on yli 400, tiedosto on lähes varmasti syyllinen. Toimi näin:

  1. Tee varmuuskopio: cp CLAUDE.md CLAUDE.md.full.
  2. Palaa lyhyeen, toimivaan malliin. Valmis malli löytyy CLAUDE.md:n määritysoppaasta.
  3. Käynnistä Claude Code uudelleen. Tarkista toiminta.
  4. Jos se toimii, palauta sääntöjä pienissä 10–20 rivin lohkoissa ja tarkista toiminta jokaisen lohkon jälkeen.
  5. Etsi lohko, joka rikkoo toiminnan. Muuta se hookiksi, jossa on oikea poistumiskoodi (hookien poistumiskoodit käsitellään tämän H2-otsikon seuraavassa alaosiossa).

Jos syynä on hook

Tärkein kysymys on, onko poistumiskoodi oikea. Claude Code -hookit käyttävät seuraavia koodeja:

  • Poistumiskoodi 0 – kaikki kunnossa; toiminto jatkuu.
  • Poistumiskoodi 1 – virhe, mutta ei estävä. Claude jatkaa kuin mitään ei olisi tapahtunut.
  • Poistumiskoodi 2 – estävä virhe. Vain tämä pysäyttää toiminnon.

Jos kirjoitit shell-hookiin sys.exit(1) tai exit 1 uskoen sen estävän toiminnan, Claude Codessa koodi toimii varoituslokina eikä pysäytä toimintoa. Vaihda se arvoon 2. Lisätietoja hookeista ja niiden määrittämisestä ilman tätä sudenkuoppaa on erillisessä oppaassa.

Toinen yleinen ongelma on hookin palauttama virheellinen JSON stdout-virrassa. Claude Code jäsentää hookin vastauksen JSON-muodossa, ja jos siinä on ylimääräistä sisältöä (loki, edistymismerkintä, emoji), hook tulkitaan epäonnistuneeksi ja toiminto jatkuu. Sääntö: stdout sisältää vain JSONia; kaikki muu ohjataan stderr-virtaan.

Kolmas tapaus on hook, joka lukee jotain hakemistosta ~/.claude/, jonka turvallinen tila on piilottanut. Tämä on tavallinen tilanne; korjaus ei ole hookin muuttaminen, vaan os.environ.get('CLAUDE_CODE_SAFE_MODE')-arvon tarkistaminen alussa ja ohjelman päättäminen koodilla 0.

Jos syynä on MCP-palvelin

Oireet: MCP-komennot ovat käytettävissä, mutta palauttavat failed ilman selkeää stack tracea. Toimi näin:

  1. Suorita claude mcp list – mitkä palvelimet on määritetty?
  2. Poista palvelimia käytöstä yksi kerrallaan tiedostossa ~/.claude.json: nimeä avain claude-server-A uudelleen muotoon _claude-server-A (tämä poistaa sen käytöstä poistamatta sitä).
  3. Käynnistä claude uudelleen. Tarkista, mitkä kutsut toimivat.
  4. Kun olet löytänyt syyllisen palvelimen, tarkista sen loki: claude mcp logs <name>.
  5. Jos kyseessä on kolmannen osapuolen palvelin (@modelcontextprotocol/server-postgres ja vastaavat), tarkista, onko siitä saatavilla uusi julkaisu. MCP-ekosysteemi on yhä myllerryksessä; palvelimet hajoavat säännöllisesti Claude Code -päivitysten yhteydessä.

Jos ohjelma ”kaatuu käynnistyksessä vain kahden MCP-palvelimen kanssa”, vertaa toimintaa turvallisessa tilassa ilman MCP:tä.

Jos syynä on skill

Skill koostuu SKILL.md-tiedostosta ja koodista hakemistossa .claude/skills/<name>/. Oireet: Claude sivuuttaa skillin, käyttää sitä väärään aikaan tai käyttää sitä mutta tuottaa roskaa. Toimi näin:

  1. Avaa SKILL.md. Tarkista kuvaus – sen tulisi olla 1–2 virkettä ja kertoa täsmällisesti, milloin sitä käytetään. Jos siinä lukee ”yleiskäyttöinen apuri kaikkeen”, Claude ei ymmärrä, milloin se pitäisi ottaa käyttöön.
  2. Tarkista ristiriidat CLAUDE.md-tiedoston kanssa. Jos CLAUDE.md sanoo ”kirjoita aina testit” mutta skillin kuvauksessa lukee ”käytä nopeaan prototypointiin ilman testejä”, ohjeet ovat ristiriidassa.
  3. Jos skill käyttää ulkoisia komentoja (npm, python, git), tarkista, että ne ovat käytettävissä koko järjestelmän kattavassa PATH-polussa. Skillillä on oma minimaalinen ympäristönsä.

Mitä tehdä, jos turvallinen tila ei auttanut: selvitä syy ja säilytä tila ennen korjausta

Tärkeimmät asiat

Jos turvallinen tilakaan ei toimi, mahdollisia syitä ovat edelleen asennus, valtuutus, verkko tai infrastruktuuri. Suorita claude doctor ja tarkista sen näyttö. Ratkaisematon raportti ei oikeuta asetusten tai istuntojen poistamista. Säilytä ja todenna ensin koko tila ja korjaa sitten vain vianmäärityksen osoittama asennus.

Käyttäjätilan poistaminen ei ole vianmääritysoikotie. Käytä alla olevia tarkistuksia syyn löytämiseen. Jos ne jäävät ratkaisemattomiksi, säilytä näyttö ja jatka tutkimista. Jokainen asennuskorjaus alkaa todennetusta varmuuskopiosta ja säilyttää nykyisen tilin sekä tunnistetietovaraston identiteetin. Järjestys:

  1. claude doctor – automaattinen diagnostiikka. Anthropic kirjoittaa dokumentaatiossaan:

Jos claude --version toimii mutta jokin muu menee pieleen, suorita claude doctor automaattisen diagnostiikkaraportin luomiseksi.

— Anthropicin dokumentaatio – asennuksen vianmääritys, https://code.claude.com/docs/en/troubleshoot-install
  1. Tarkista ristiriitaiset asennukset. Monilla on sekä npm:n globaali versio että natiivi asennusohjelma asennettuna samaan aikaan:

Useat Claude Code -asennukset voivat johtaa versioeroihin tai odottamattomaan toimintaan.

— Anthropicin dokumentaatio – asennuksen vianmääritys, https://code.claude.com/docs/en/troubleshoot-install
  1. Tarkista, ottaako ANTHROPIC_API_KEY OAuth-istuntosi käyttöönsä. Tämä on yleinen syy tilanteeseen ”mikään ei toimi, avain vanheni”:

Kun `ANTHROPIC_API_KEY` on asetettu ja olet vahvistanut sen, Claude Code käyttää tätä avainta tilauksen OAuth-tunnistetietojen sijaan.

— Anthropicin dokumentaatio – asennuksen vianmääritys, https://code.claude.com/docs/en/troubleshoot-install

Ratkaisu: suorita unset ANTHROPIC_API_KEY nykyisessä shell-istunnossa tai poista se tiedostosta ~/.zshrc / ~/.bashrc.

  1. Korjaa vain vianmäärityksen osoittama asennus ja säilytä ensin koko käyttäjätila. Turvallisen tilan epäonnistuminen tai ratkaisematon doctor-raportti ei osoita käyttäjädatan poistotarvetta. Pysäytä kaikki Claude-istunnot ja muut kirjoittajat ennen yhtenäistä varmuuskopiota. Säilytä sama Unix-tili, HOME, käyttöjärjestelmän tunnistetietovarasto ja Anthropic-tili. Älä kierrätä avaimia tai luo korvaavaa identiteettiä.

Seuraava varmuuskopioesimerkki on Linuxille GNU tarilla. Käytä macOS:ssä tai Windowsissa varmuuskopiotyökalua, joka säilyttää alustan ACL:t, laajennetut attribuutit, linkit ja metadatan. Varmista palautus ennen jatkamista äläkä oleta GNU-kohtaisten lippujen toimivan muualla. Arkisto sisältää tunnistetietoja ja istuntotallenteita. Pidä se yksityisenä ja repositorioiden ulkopuolella.

# Run as the same user who owns the Claude state, after stopping writers.
set -eu
umask 077
backup_dir=$(mktemp -d "$HOME/.claude-recovery-XXXXXXXX")
set --
if [ -e "$HOME/.claude" ] || [ -L "$HOME/.claude" ]; then
  set -- "$@" .claude
fi
if [ -e "$HOME/.claude.json" ] || [ -L "$HOME/.claude.json" ]; then
  set -- "$@" .claude.json
fi
[ "$#" -gt 0 ] || exit 1
tar --acls --xattrs --numeric-owner -cpf "$backup_dir/claude-state.tar" -C "$HOME" "$@"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$HOME"
sha256sum "$backup_dir/claude-state.tar" > "$backup_dir/claude-state.sha256"
(cd "$backup_dir" && sha256sum -c claude-state.sha256)
mkdir "$backup_dir/restore-check"
tar --acls --xattrs -xpf "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
printf 'Verified recovery directory: %s\n' "$backup_dir"

Jokaisen komennon pitää onnistua. Arkisto kattaa koko nykyisen .claude-puun, myös ohitetut ja seuraamattomat istunnot sekä plugin-tilan, ja .claude.json-tiedoston, ei vain Gitin seuraamia asetuksia. Jos jompikumpi polku on symbolinen linkki tai data sijaitsee erikseen määritetyssä paikassa, pysähdy ja sisällytä ratkaistu kohde samaan todennettuun varmuuskopioon. Pelkän linkin arkistointi ei kopioi sen kohdetta. Arkisto ei sisällä macOS Keychainia tai muuta ulkoista tunnistetietovarastoa, joten säilytä ne identiteetit paikallaan.

Jos vianmääritys tunnistaa nimenomaisesti vanhan paikallisen asennuksen ristiriitaiseksi kopioksi, siirrä vain se yksityiseen palautushakemistoon asetusten ja istuntojen poistamisen sijaan:

# Use the verified backup_dir from the previous block.
if [ -d "$HOME/.claude/local" ]; then
  mv "$HOME/.claude/local" "$backup_dir/legacy-local"
fi

Poista npm-asennus vain vianmäärityksen osoittaessa sen ristiriitaiseksi asennukseksi ja kun aiot säilyttää natiivin asennuksen. Käytä sitten dokumentoitua natiiviasenninta poistamatta .claude-hakemistoa tai .claude.json-tiedostoa:

curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude doctor

Windowsissa natiiviasennuskomento säilyy:

irm https://claude.ai/install.ps1 | iex

Palauta erikseen. Pysäytä kirjoittajat uudelleen. Tarkista arkiston tarkistussumma ja pura se tyhjään palautushakemistoon kuten edellä. Vertaa onnistuneesti ennen tiedostojen käyttämistä. Jos siirretty vanha asennus pitää palauttaa, varmista ensin, ettei $HOME/.claude/local ole olemassa, ja siirrä sitten $backup_dir/legacy-local takaisin täsmälleen siihen polkuun. Palauta vianmäärityksen osoittama asetustiedosto todennetusta purusta vasta nykyisen korvaavan tiedoston säilyttämisen jälkeen. Älä peitä koko puuta sokkona. Istunnot, MCP-asetukset ja alkuperäinen identiteetti säilyvät. Pelkkä Git-tilannekuva ei kata ohitettuja tai seuraamattomia tallenteita, tunnistetietoja tai tiedostojärjestelmän metadataa.

Mitä EI pidä tehdä, kun Claude Code on rikki?

Tärkeimmät asiat

Kuvatuissa tukitapauksissa havaitut kuusi huonoa toimintatapaa: avainten vaihtaminen ennen vianmääritystä, täydellinen nollaus ensimmäisenä toimenpiteenä, paniikki hookin käyttöliittymävirheen vuoksi, hookin poistumiskoodin nostaminen ennen logiikan korjaamista, CLAUDE.md-tiedoston muokkaaminen ilman turvallisen tilan varmistusta ja usko siihen, että ”Claude korjaa oman MCP:nsä”. Jokainen näistä maksaa tunteja, eikä yksikään ole tarpeellinen.

Älä vaihda avaimia ennen vianmääritystä

”Valtuutus ei toimi” johtuu 90% tapauksista joko siitä, että ANTHROPIC_API_KEY ottaa tilauksen käyttöönsä, hookin käyttöliittymäviasta tai epäonnistuneesta MCP:stä. Avainten kierrättäminen ei korjaa mitään näistä, mutta aiheuttaa tunnin lisäkatkon: vanha avain on peruutettava, uusi luotava, CI allekirjoitettava uudelleen sillä ja tuotantoympäristön muuttujat päivitettävä. Suorita ensin claude --safe-mode. Toimiiko se? Silloin ongelma on mukautuksissa, eikä avaimiin tarvitse koskea.

Älä tee täydellistä nollausta ennen turvallisen tilan kokeilemista

Turvallinen tila tarjoaa eristetyn ympäristön yhdessä sekunnissa. .claude-hakemiston poistaminen voi tuhota istuntoja, MCP-asetuksia ja muuta seuraamatonta tilaa. Selvitä syy ensin, varmista yksityinen varmuuskopio ja käytä palautettavaa siirtoa vain todella ongelmalliseksi todettuun asennus- tai asetuskerrokseen.

Älä panikoi hookin käyttöliittymävirheestä

Ennen kuin korjaat mitään, tarkista visuaalisen ilmaisimen sijaan, suoritettiinko hook todella (stderr-lokin tai eksplisiittisen tulostuksen avulla).

Älä nosta hookin poistumiskoodia ennen logiikan korjaamista

Kun estävä hook ei estä toimintaa, houkutus on asettaa exit 2 ja kuitata asia hoidetuksi. Se on toimiva pikakorjaus, mutta piilottaa toisen ongelman: jos esto ei toiminut kuukauteen, kaikki hookin kiellettäväksi tarkoittama toiminta pääsi läpi. Käy ensin git-loki läpi ja selvitä tarkasti, mitä pääsi läpi. Lisää esto vasta sen jälkeen. Muuten myöhemmin lisätty esto ei peruuta jo tapahtunutta.

Älä muokkaa tuotannon CLAUDE.md-tiedostoa varmistamatta asiaa turvallisessa tilassa

Kuvatussa tilanteessa muokkaat CLAUDE.md-tiedostoa, Claude alkaa käyttäytyä oudosti, suoritat git diff -komennon ja huomaat, että joku lisäsi repoosi samana iltana myös MCP-palvelimen ja hookin. Syytät muokkaustasi, palautat sen ja Claude käyttäytyy edelleen oudosti. Sääntö: suorita claude --safe-mode ennen git revert -komentoa. Jos ongelma jatkuu turvallisessa tilassa, muokkauksesi ei liittynyt siihen – palautusta ei tarvita.

Älä usko, että ”Claude korjaa oman MCP:nsä”

Tyypillinen tilanne: pyydät Claudea ”lisäämään tietyn työkalun MCP-palvelimelle”, Claude kirjoittaa toimivan määrityksen uusiksi, kaikki hajoaa, ja sen jälkeen Claude käyttää useita vuoroja aiheuttamansa vahingon selvittämiseen – ja kuluttaa samalla istuntokiintiön. Kun MCP on rikki, hanki määritys manuaalisesti; älä jätä sitä agentin tehtäväksi. Osa sen työkalupakista toimii myös MCP:n kautta, ja rikkinäinen MCP tarkoittaa rikkinäistä diagnosoijaa.

Mitä tehdä korjauksen jälkeen?

Tärkeimmät asiat

Kun olet palauttanut Claude Coden toimintaan, lisää ennaltaehkäisyä, jotta se ei hajoa uudelleen. Vähintään: disableBypassPermissionsMode: "disable" käyttäjäasetuksissa, .env-tiedoston ja git push --force -komennon estävät hookit sekä sandbox pitkiä itsenäisiä ajoja varten. Ennaltaehkäisyopas on tämän oppaan vastinpari.

Älä palaa heti töihin tapahtuman analysoinnin jälkeen. Lisää ensin ennaltaehkäisyä, jotta tapahtuma ei toistu. Second brainin (business/-kansio projektirakenteineen) ja CLAUDE.md-tiedoston luomiseen voi kulua tunteja, ja niiden manuaalinen palauttaminen on vaikeaa – se on vahva peruste. Vähimmäiskokoonpano:

  1. ~/.claude/settings.json, jossa on permissions.disableBypassPermissionsMode: "disable" – arkkitehtoninen kielto ohitustilalle, jotta vahingossa käynnistetty --dangerously-skip-permissions ei yksinkertaisesti toimi.
  2. Hookit kohteille Read(./env*), Bash(git push --force), Write(./node_modules/**) – asiat, jotka on pysäytettävä sääntöjen, ei toiveiden tasolla.
  3. Sandbox-määritys pitkiä itsenäisiä ajoja varten (/loop, /schedule).
  4. /compact ja omat säännöt sille, mitä kontekstista poistetaan, jotta Claude ei kuluttaisi itseään loppuun.

Täydellinen nelikerroksinen suojausjärjestelmä esitellään oppaassa ”Näin määrität Claude Coden niin, ettei se riko projektiasi yön aikana”. Toinen opas käsittelee ennaltaehkäisyä ennen /loop-komennon käynnistämistä; toinen palautumista sen jälkeen, kun /loop on jo rikkonut jotain. Looginen pari.

Lähteet

Käytännön materiaalia: Ailoot-dokumentaatio.

Lisää materiaalia ja työkaluja: Ailoot.

Lisätietoja

Kysymyksiä tästä oppaasta: Claude Coden palautus: turvallinen tila, /cd ja varamallit

Tarkoittaako turvallisen tilan epäonnistuminen, että minun pitää poistaa ~/.claude?

Ei. Selvitettäviksi jäävät yhä asennus, valtuutus, verkko ja infrastruktuuri. Ratkaisematon doctor-raportti ei osoita asetusten tai istuntojen poistotarvetta. Korjaa vain vianmäärityksen osoittama kerros.

Mitä pitää säilyttää ennen asennuskorjausta?

Pysäytä kirjoittajat ja varmuuskopioi koko Claude-tila, myös istunnot, plugin- ja MCP-asetukset, ohitetut tiedostot ja tiedostojärjestelmän metadata. Varmista tarkistussumma ja purku ennen jatkamista. Säilytä nykyinen tili ja tunnistetietovarasto ja palauta vain todettu kerros peittämättä nykytilaa sokkona.

Kaikki artikkelit