SpyBara
Go Premium

Documentation 2026-09-18 23:58 UTC to 2026-09-19 23:57 UTC

11 files changed +135 −19. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02
Details

126 126 

127Consulta [dove ogni meccanismo memorizza la policy](/docs/it/managed-settings#where-each-mechanism-stores-the-policy) per i percorsi dei file, e [Impostazioni gestite lato client](/docs/it/claude-apps-gateway-config#client-side-managed-settings) per l'equivalente `bootstrapUrl` di Claude Desktop.127Consulta [dove ogni meccanismo memorizza la policy](/docs/it/managed-settings#where-each-mechanism-stores-the-policy) per i percorsi dei file, e [Impostazioni gestite lato client](/docs/it/claude-apps-gateway-config#client-side-managed-settings) per l'equivalente `bootstrapUrl` di Claude Desktop.

128 128 

129<h3 id="large-rollouts">

130 Rollout su larga scala

131</h3>

132 

133L'accesso è limitato per indirizzo IP client, e i valori predefiniti si adattano a un piccolo team. Ogni indirizzo ottiene 30 avvii di accesso e 10 invii di codice ogni 10 minuti. Un rollout a migliaia di sviluppatori può raggiungere questi limiti la prima mattina, per uno di due motivi:

134 

135* **Il gateway non può vedere oltre il tuo load balancer.** Senza [`listen.trusted_proxies`](/docs/it/claude-apps-gateway-config#listen), ogni sviluppatore sembra provenire dall'indirizzo del load balancer e condivide un limite. Impostalo prima di qualsiasi altra cosa. Il gateway registra un avviso la prima volta che ignora un'intestazione `X-Forwarded-For`.

136* **Molti sviluppatori condividono pochi indirizzi di uscita NAT o VPN.** Condividono i limiti di quegli indirizzi anche quando `trusted_proxies` è corretto. Aumenta [`rate_limits`](/docs/it/claude-apps-gateway-config#http-tuning) per adattarsi.

137 

138Per dimensionare `max`, dividi gli sviluppatori per gli indirizzi di uscita che condividono. Stima quanti di loro accedono entro un periodo `window_seconds`, che è 10 minuti per impostazione predefinita. Quindi raddoppialo per coprire i tentativi e gli sviluppatori che accedono sia a Claude Code che a Claude Desktop.

139 

140Ad esempio, 10.000 sviluppatori dietro 4 indirizzi di uscita accedono uniformemente in un'ora. Cioè 2.500 sviluppatori per indirizzo e circa 420 di loro in ogni 10 minuti, che raddoppi e arrotondi a 1.000. L'esempio seguente imposta entrambi i limiti a 1.000:

141 

142```yaml theme={null}

143rate_limits:

144 device_authorization: { max: 1000, window_seconds: 600 }

145 device_verify: { max: 1000, window_seconds: 600 }

146```

147 

148`device_verify` è quello che impedisce a qualcuno di indovinare il codice di accesso di un altro sviluppatore, quindi aumentalo solo quanto la tua stima ha bisogno. Anche a questi limiti, un codice è 8 caratteri da un alfabeto di 20 caratteri e scade dopo 10 minuti, quindi indovinare rimane impraticabile; consulta [Resistenza al brute-force del codice utente](#user-code-brute-force-resistance).

149 

150Quando il tuo IdP emette token di aggiornamento, Claude Code rinnova le sessioni silenziosamente, quindi puoi rimettere il limite dopo il rollout. Senza token di aggiornamento, gli sviluppatori accedono di nuovo ogni [`session.ttl_hours`](/docs/it/claude-apps-gateway-config#session). Dimensiona entrambi i limiti anche per quel tasso costante e lasciali aumentati.

151 

152Quando un limite viene raggiunto, Claude Code v2.1.274 o successivo mostra `The gateway is limiting sign-in attempts right now`. Un gateway su v2.1.274 o successivo mostra `Too many attempts came from your network address` sulla pagina di verifica, con le impostazioni da controllare. Scrive anche una riga di log `sign-in refused` che nomina l'impostazione da modificare.

153 

129<h2 id="operations">154<h2 id="operations">

130 Operazioni155 Operazioni

131</h2>156</h2>


160 185 

161Il documento di scoperta OAuth in `/.well-known/oauth-authorization-server` restituisce anche `200` solo dopo il caricamento della configurazione, la scoperta OIDC, la costruzione del client upstream e la migrazione di Postgres, quindi funge anche da controllo di avvio end-to-end.186Il documento di scoperta OAuth in `/.well-known/oauth-authorization-server` restituisce anche `200` solo dopo il caricamento della configurazione, la scoperta OIDC, la costruzione del client upstream e la migrazione di Postgres, quindi funge anche da controllo di avvio end-to-end.

162 187 

188<h3 id="concurrent-upstream-requests">

189 Richieste upstream concorrenti

190</h3>

191 

192Per impostazione predefinita, ogni replica del gateway invia al massimo 256 richieste upstream contemporaneamente. Una risposta in streaming conta rispetto al limite fino al termine dello stream.

193 

194Una richiesta che arriva mentre una replica è al limite attende all'interno del gateway per uno slot libero. Lo sviluppatore vede una risposta che è lenta a iniziare o sembra bloccarsi. Su un upstream `provider: anthropic`, una richiesta che attende più a lungo di [`timeouts.upstream_ttfb_ms`](/docs/it/claude-apps-gateway-config#http-tuning) rinuncia a quell'upstream e fallisce con un 502 quando nessun upstream successivo lo serve.

195 

196La riga di log di avvio che contiene `upstream requests:` mostra il limite in vigore. Mentre una replica ha più richieste aperte rispetto al limite, registra anche un avvertimento che contiene `client requests are open`, al massimo una volta al minuto.

197 

198Per servire più richieste contemporaneamente, hai due opzioni:

199 

200* Aggiungi repliche.

201* Aumenta il limite su ogni replica. Imposta la variabile di ambiente `BUN_CONFIG_MAX_HTTP_REQUESTS` sul contenitore del gateway su un numero intero da 1 a 65535, quindi riavvia il contenitore.

202 

203Una replica riempie il suo limite a una velocità di richiesta di circa il limite diviso per il numero medio di secondi che una richiesta rimane aperta. Ad esempio, se le richieste rimangono aperte per 10 secondi in media, una replica al limite predefinito di 256 lo riempie a circa 26 richieste al secondo.

204 

205Se autoscali su CPU, una replica al limite mette in coda le richieste senza attivare uno scale-out, quindi imposta l'obiettivo al di sotto del livello di CPU che le tue repliche mostrano quando registrano l'avvertimento `client requests are open`.

206 

207<Warning>

208 Ogni richiesta aperta contiene memoria nel processo del gateway mentre esegue lo streaming e mentre attende uno slot. Se mantieni il limite a 256, la memoria su una replica sovraccarica continua a crescere, perché le richieste in attesa mantengono i loro corpi di richiesta. Dimensiona la memoria del contenitore per il numero di richieste aperte al picco e osserva la memoria quando cambi il limite. Una replica che esaurisce la memoria viene uccisa e interrompe ogni stream che contiene.

209</Warning>

210 

163<h3 id="outage-behavior">211<h3 id="outage-behavior">

164 Comportamento in caso di interruzione212 Comportamento in caso di interruzione

165</h3>213</h3>


207 Aggiornamenti255 Aggiornamenti

208</h3>256</h3>

209 257 

210Le repliche sono senza stato, quindi un riavvio rolling è sicuro in qualsiasi momento. Il gateway esegue migrazioni dello schema all'avvio, il che significa che distribuire il nuovo binario auto-migra il database. Le repliche concorrenti si serializzano su un lock consigliato di Postgres, quindi solo una applica ogni migrazione.258Le repliche sono senza stato, quindi un riavvio rolling non perde alcuno stato del gateway. Il gateway esegue migrazioni dello schema all'avvio, il che significa che distribuire il nuovo binario auto-migra il database. Le repliche concorrenti si serializzano su un lock consigliato di Postgres, quindi solo una applica ogni migrazione.

259 

260Quando il tuo orchestrator arresta una replica con `SIGTERM`, come in un riavvio rolling o uno scale-in, il gateway smette di accettare nuove connessioni e lascia che le richieste e gli stream già in volo finiscano prima di uscire. Attende fino a 25 secondi, chiamato la finestra di drenaggio, quindi chiude tutto ciò che è ancora aperto. Un `SIGINT`, come Ctrl+C in un terminale, avvia lo stesso drenaggio, e un secondo segnale durante il drenaggio chiude le richieste aperte ed esce subito. Il drenaggio richiede gateway v2.1.274 o successivo.

261 

262Le generazioni lunghe possono eseguire lo streaming per minuti. Su Kubernetes e Amazon ECS, aumenta entrambi questi insieme per dare a quegli stream più tempo:

263 

264* **La finestra di drenaggio**: imposta la variabile di ambiente `CLAUDE_GATEWAY_DRAIN_TIMEOUT_MS` sul contenitore del gateway su un numero intero positivo di millisecondi, come `120000`. Il gateway ignora un valore in qualsiasi altra forma, come `120s`, e mantiene il predefinito di 25 secondi

265* **Il periodo di grazia del tuo orchestrator**: `terminationGracePeriodSeconds` su Kubernetes, o `stopTimeout` su Amazon ECS

266 

267Il periodo di grazia predefinito è 30 secondi su entrambe le piattaforme. Mantienilo almeno 5 secondi più lungo della finestra di drenaggio, o l'orchestrator uccide il gateway prima che il drenaggio finisca. Su Kubernetes, aggiungi anche la durata di qualsiasi hook `preStop`, perché il periodo di grazia inizia a contare prima che l'hook venga eseguito piuttosto che quando il gateway riceve `SIGTERM`.

268 

269La tua piattaforma potrebbe anche limitare quanto a lungo il drenaggio può eseguire:

270 

271* **Amazon ECS su Fargate**: `stopTimeout` consente al massimo 120 secondi

272* **Cloud Run**: arresta un'istanza 10 secondi dopo `SIGTERM`, quindi gli stream aperti ottengono al massimo 10 secondi lì, qualunque sia la finestra di drenaggio

273 

274Quando la finestra di drenaggio termina con richieste ancora aperte, il gateway registra un avvertimento che contiene `drain window over after`, conta le richieste che ha tagliato e nomina entrambe le impostazioni da aumentare.

211 275 

212Le migrazioni sono append-only, quindi il rollback a un binario precedente che conosce meno migrazioni è sicuro; ignora le righe extra. Il rollback ri-convalida anche il YAML rispetto allo schema del binario più vecchio, quindi una configurazione che ha adottato una chiave introdotta dalla versione più recente fallisce l'avvio su quella più vecchia. Rimuovi la nuova chiave prima di eseguire il rollback.276Le migrazioni sono append-only, quindi il rollback a un binario precedente che conosce meno migrazioni è sicuro; ignora le righe extra. Il rollback ri-convalida anche il YAML rispetto allo schema del binario più vecchio, quindi una configurazione che ha adottato una chiave introdotta dalla versione più recente fallisce l'avvio su quella più vecchia. Rimuovi la nuova chiave prima di eseguire il rollback.

213 277 


239 303 

240* Gli sviluppatori detengono JWT di breve durata invece di chiavi upstream grezze. La gamba CLI-to-gateway utilizza la concessione del dispositivo RFC 8628, e lo scambio di autorizzazione del gateway con l'IdP esegue PKCE nella configurazione predefinita, quindi un codice di autorizzazione IdP intercettato è inutile.304* Gli sviluppatori detengono JWT di breve durata invece di chiavi upstream grezze. La gamba CLI-to-gateway utilizza la concessione del dispositivo RFC 8628, e lo scambio di autorizzazione del gateway con l'IdP esegue PKCE nella configurazione predefinita, quindi un codice di autorizzazione IdP intercettato è inutile.

241* La pagina di verifica del dispositivo applica POST della stessa origine e un limite di velocità per IP per RFC 8628 §5.1. Consulta [Resistenza al brute-force del codice utente](#user-code-brute-force-resistance).305* La pagina di verifica del dispositivo applica POST della stessa origine e un limite di velocità per IP per RFC 8628 §5.1. Consulta [Resistenza al brute-force del codice utente](#user-code-brute-force-resistance).

242* Le richieste in uscita passano attraverso una guardia SSRF (Server-Side Request Forgery) che risolve DNS, blocca gli indirizzi link-local e cloud-metadata più loopback per impostazione predefinita, e fissa la connessione all'IP risolto, quindi gli URL influenzati dall'operatore come l'IdP e le destinazioni OTLP non possono essere reindirizzati agli endpoint dei metadati cloud. Gli intervalli privati RFC 1918 sono deliberatamente consentiti, perché gli IdP e i collettori OTLP comunemente vivono su IP privati. Imposta `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` nell'ambiente del gateway solo quando qualcosa che il gateway deve raggiungere legittimamente vive su loopback, come un IdP di sviluppo locale o un collettore OTLP sidecar su `localhost`. La variabile rilassa il blocco loopback per ogni URL configurato dall'operatore e salta anche l'avviso al momento dell'avvio che controlla se il pod può raggiungere l'endpoint dei metadati cloud, quindi preferisci dare al collettore il suo indirizzo interno.306* Le richieste del gateway al tuo IdP, ai tuoi collettori OTLP e agli upstream `provider: anthropic` passano attraverso una guardia SSRF (Server-Side Request Forgery) che risolve DNS, blocca gli indirizzi link-local e cloud-metadata più loopback per impostazione predefinita, e fissa la connessione all'IP risolto, quindi gli URL influenzati dall'operatore non possono essere reindirizzati agli endpoint dei metadati cloud. Gli intervalli privati RFC 1918 sono deliberatamente consentiti, perché gli IdP e i collettori OTLP comunemente vivono su IP privati. Per gli altri provider, il gateway rifiuta un `base_url` che nomina uno di quegli indirizzi o un nome host di metadati quando carica la configurazione, e l'SDK del provider si connette quindi senza il controllo DNS.

307 

308 Se attivi [egress solo proxy](/docs/it/claude-apps-gateway-config#proxy-only-egress), quel controllo di indirizzo si sposta al tuo proxy in avanti: il gateway consegna i nomi host e la lista di consentiti del proxy deve rifiutare quelle destinazioni.

309 

310 Imposta `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` nell'ambiente del gateway solo quando qualcosa che il gateway deve raggiungere legittimamente vive su loopback, come un IdP di sviluppo locale o un collettore OTLP sidecar su `localhost`. La variabile rilassa il blocco loopback per ogni URL configurato dall'operatore e salta anche l'avviso al momento dell'avvio che controlla se il pod può raggiungere l'endpoint dei metadati cloud, quindi preferisci dare al collettore il suo indirizzo interno.

243 311 

244Se aggiungi i tuoi controlli di uscita, il gateway deve raggiungere il server dei metadati ogni volta che utilizza credenziali di metadati dell'istanza come workload identity.312Se aggiungi i tuoi controlli di uscita, il gateway deve raggiungere il server dei metadati ogni volta che utilizza credenziali di metadati dell'istanza come workload identity.

245 313 


254 322 

255Il `user_code` che uno sviluppatore digita nella pagina di verifica `/device` è di 8 caratteri tratti da un alfabeto di 20 caratteri, che produce 20⁸ o circa 2,56×10¹⁰ combinazioni, e scade dopo 10 minuti.323Il `user_code` che uno sviluppatore digita nella pagina di verifica `/device` è di 8 caratteri tratti da un alfabeto di 20 caratteri, che produce 20⁸ o circa 2,56×10¹⁰ combinazioni, e scade dopo 10 minuti.

256 324 

257Il gateway applica limiti di velocità per IP sugli endpoint di concessione del dispositivo, configurabili tramite [`rate_limits`](/docs/it/claude-apps-gateway-config#http-tuning). Aumenta i limiti se molti sviluppatori accedono da un singolo indirizzo NAT aziendale condiviso. I limiti si applicano solo al flusso di accesso, non all'inferenza.325Il gateway applica limiti di velocità per IP sugli endpoint di concessione del dispositivo, configurabili tramite [`rate_limits`](/docs/it/claude-apps-gateway-config#http-tuning). Aumenta i limiti se molti sviluppatori accedono da un singolo indirizzo NAT aziendale condiviso. [I rollout su larga scala](#large-rollouts) mostra come dimensionarli. I limiti si applicano solo al flusso di accesso, non all'inferenza.

258 326 

259<h3 id="compliance-posture">327<h3 id="compliance-posture">

260 Postura di conformità328 Postura di conformità


284Lo stderr del gateway include il flusso di eventi di audit, il log di audit registra le identità degli sviluppatori e il file di debug registra l'output di hook e MCP server dalla macchina dello sviluppatore. Rivedi e oscura questi elementi prima di pubblicare su un problema pubblico.352Lo stderr del gateway include il flusso di eventi di audit, il log di audit registra le identità degli sviluppatori e il file di debug registra l'output di hook e MCP server dalla macchina dello sviluppatore. Rivedi e oscura questi elementi prima di pubblicare su un problema pubblico.

285 353 

286| Sintomo | Causa | Soluzione |354| Sintomo | Causa | Soluzione |

287| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |355| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

288| La `/login` di uno sviluppatore mostra il selettore di account standard invece della schermata **Cloud gateway** | `forceLoginMethod` o `forceLoginGatewayUrl` non è impostato nelle impostazioni gestite su quella macchina | Distribuisci il [file delle impostazioni gestite](/docs/it/claude-apps-gateway#set-the-gateway-url) al dispositivo; `/login` legge l'URL del gateway da lì |356| La `/login` di uno sviluppatore mostra il selettore di account standard invece della schermata **Cloud gateway** | `forceLoginMethod` o `forceLoginGatewayUrl` non è impostato nelle impostazioni gestite su quella macchina | Distribuisci il [file delle impostazioni gestite](/docs/it/claude-apps-gateway#set-the-gateway-url) al dispositivo; `/login` legge l'URL del gateway da lì |

289| Le richieste di uno sviluppatore falliscono con `Not signed in to the Cloud gateway — run /login.` | Le impostazioni gestite della macchina impostano `forceLoginMethod: "gateway"` o `forceLoginGatewayUrl`, e la sessione non ha un accesso al gateway. Un accesso a claude.ai residuo non soddisfa il requisito. | Chiedi allo sviluppatore di eseguire `/login` e completare l'accesso al gateway. Vedi anche [Administrator policy requires a Cloud gateway sign-in](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |357| Le richieste di uno sviluppatore falliscono con `Not signed in to the Cloud gateway — run /login.` | Le impostazioni gestite della macchina impostano `forceLoginMethod: "gateway"` o `forceLoginGatewayUrl`, e la sessione non ha un accesso al gateway. Un accesso a claude.ai residuo non soddisfa il requisito. | Chiedi allo sviluppatore di eseguire `/login` e completare l'accesso al gateway. Vedi anche [Administrator policy requires a Cloud gateway sign-in](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

290| Claude Desktop segnala che la sua configurazione di bootstrap non poteva essere recuperata | `/user/bootstrap` ha restituito 404: il criterio che corrisponde all'utente non contiene una chiave `desktop`, oppure nessun criterio corrisponde. Il log di audit del gateway registra ogni rifiuto come `desktop_bootstrap.denied` con il motivo. | Aggiungi un blocco `desktop` al criterio che corrisponde all'utente, oppure al livello base `match: {}`; un `desktop: {}` vuoto è sufficiente. Vedi [Claude Desktop overlay](/docs/it/claude-apps-gateway-config#claude-desktop-overlay). |358| Claude Desktop segnala che la sua configurazione di bootstrap non poteva essere recuperata | `/user/bootstrap` ha restituito 404: il criterio che corrisponde all'utente non contiene una chiave `desktop`, oppure nessun criterio corrisponde. Il log di audit del gateway registra ogni rifiuto come `desktop_bootstrap.denied` con il motivo. | Aggiungi un blocco `desktop` al criterio che corrisponde all'utente, oppure al livello base `match: {}`; un `desktop: {}` vuoto è sufficiente. Vedi [Claude Desktop overlay](/docs/it/claude-apps-gateway-config#claude-desktop-overlay). |

291| L'avvio mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | La build di Claude Code installata precede il supporto del gateway | Chiedi allo sviluppatore di aggiornare Claude Code a una versione che include il supporto Cloud gateway |359| L'avvio mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | La build di Claude Code installata precede il supporto del gateway | Chiedi allo sviluppatore di aggiornare Claude Code a una versione che include il supporto Cloud gateway |

292| L'avvio esce con `Administrator policy requires a Cloud gateway sign-in on this machine` | L'ambiente dello sviluppatore imposta `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, le loro impostazioni configurano un [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper), oppure una chiave API da un accesso precedente a Claude Console è ancora salvata | Chiedi allo sviluppatore di cancellare ciascuno che si applica: annulla l'impostazione della variabile, rimuovi la voce `apiKeyHelper`, oppure esegui `claude auth logout` per rimuovere la chiave salvata. Quindi chiedigli di avviare `claude` e accedere con `/login`. Vedi anche [Administrator policy requires a Cloud gateway sign-in](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |360| L'avvio esce con `Administrator policy requires a Cloud gateway sign-in on this machine` | L'ambiente dello sviluppatore imposta `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, le loro impostazioni configurano un [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper), oppure una chiave API da un accesso precedente a Claude Console è ancora salvata | Chiedi allo sviluppatore di cancellare ciascuno che si applica: annulla l'impostazione della variabile, rimuovi la voce `apiKeyHelper`, oppure esegui `claude auth logout` per rimuovere la chiave salvata. Quindi chiedigli di avviare `claude` e accedere con `/login`. Vedi anche [Administrator policy requires a Cloud gateway sign-in](/docs/it/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

293| L'avvio o `/login` segnala `Claude Code may not be enabled for your organization` dopo un 403 al caricamento delle impostazioni gestite | Il gateway, o qualcosa davanti ad esso, ha risposto alla richiesta `/managed/settings` con 403. La rotta delle impostazioni del gateway stesso non risponde mai con 403. Lo stato proviene dai controlli IP [`access_control`](/docs/it/claude-apps-gateway-config#http-tuning) o da un proxy o WAF davanti al gateway. Il log di audit registra un rifiuto del controllo IP come `access.denied` con il motivo. Lo sviluppatore rimane connesso. | Controlla il log di audit per `access.denied` al momento dell'errore e correggi gli elenchi `access_control` o il front end, quindi chiedi allo sviluppatore di avviare `claude` di nuovo |361| L'avvio o `/login` segnala `Claude Code may not be enabled for your organization` dopo un 403 al caricamento delle impostazioni gestite | Il gateway, o qualcosa davanti ad esso, ha risposto alla richiesta `/managed/settings` con 403. La rotta delle impostazioni del gateway stesso non risponde mai con 403. Lo stato proviene dai controlli IP [`access_control`](/docs/it/claude-apps-gateway-config#http-tuning) o da un proxy o WAF davanti al gateway. Il log di audit registra un rifiuto del controllo IP come `access.denied` con il motivo. Lo sviluppatore rimane connesso. | Controlla il log di audit per `access.denied` al momento dell'errore e correggi gli elenchi `access_control` o il front end, quindi chiedi allo sviluppatore di avviare `claude` di nuovo |

362| CLI `/login`: `The gateway is limiting sign-in attempts right now`, oppure `Request failed with status code 429` nelle versioni precedenti. La pagina `/device` potrebbe mostrare `Too many attempts` agli sviluppatori che non hanno mai provato prima | È stato raggiunto il limite di velocità di accesso per IP. O `listen.trusted_proxies` non copre il bilanciatore di carico, quindi ogni sviluppatore condivide il suo indirizzo, oppure molti sviluppatori condividono un indirizzo di uscita NAT o VPN. Gli eventi di audit con `result: rate_limited` mostrano lo stesso uno o pochi valori `client_ip`. | Imposta prima `listen.trusted_proxies` agli intervalli di origine del bilanciatore di carico, quindi aumenta `rate_limits` se gli sviluppatori condividono ancora indirizzi. Vedi [Large rollouts](#large-rollouts). |

294| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Il nome host del gateway si risolve in almeno un indirizzo IP pubblico. Claude Code controlla ogni indirizzo risolto e richiede che tutti siano privati. Una causa comune è un nome dual-stack in cui una famiglia si risolve in un indirizzo pubblico, inclusi i bilanciatori di carico dual-stack interni di AWS, che restituiscono indirizzi AAAA in intervallo pubblico. | Fai in modo che il nome del gateway si risolva solo in indirizzi privati sulle macchine degli sviluppatori. Per un nome dual-stack, elimina il record in intervallo pubblico o servi un nome DNS solo interno separato. Vedi il [prerequisito di rete privata](/docs/it/claude-apps-gateway#prerequisites). Se l'indirizzo è spazio pubblico che la tua organizzazione possiede e utilizza internamente, [dichiara quel blocco](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) invece. |363| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Il nome host del gateway si risolve in almeno un indirizzo IP pubblico. Claude Code controlla ogni indirizzo risolto e richiede che tutti siano privati. Una causa comune è un nome dual-stack in cui una famiglia si risolve in un indirizzo pubblico, inclusi i bilanciatori di carico dual-stack interni di AWS, che restituiscono indirizzi AAAA in intervallo pubblico. | Fai in modo che il nome del gateway si risolva solo in indirizzi privati sulle macchine degli sviluppatori. Per un nome dual-stack, elimina il record in intervallo pubblico o servi un nome DNS solo interno separato. Vedi il [prerequisito di rete privata](/docs/it/claude-apps-gateway#prerequisites). Se l'indirizzo è spazio pubblico che la tua organizzazione possiede e utilizza internamente, [dichiara quel blocco](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) invece. |

295| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Un `HTTPS_PROXY` o `HTTP_PROXY` si applica all'host del gateway e il nome host del proxy si risolve in un indirizzo pubblico. Un proxy il cui host si risolve solo in indirizzi privati è consentito e non attiva questo errore | Aggiungi l'host del gateway a `NO_PROXY` sulla macchina dello sviluppatore in modo che la connessione sia diretta, oppure utilizza un proxy il cui nome host si risolve in indirizzi privati. Il messaggio nomina la voce esatta `NO_PROXY` da aggiungere |364| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Un `HTTPS_PROXY` o `HTTP_PROXY` si applica all'host del gateway e il nome host del proxy si risolve in un indirizzo pubblico. Un proxy il cui host si risolve solo in indirizzi privati è consentito e non attiva questo errore | Aggiungi l'host del gateway a `NO_PROXY` sulla macchina dello sviluppatore in modo che la connessione sia diretta, oppure utilizza un proxy il cui nome host si risolve in indirizzi privati. Il messaggio nomina la voce esatta `NO_PROXY` da aggiungere |

296| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | Il gateway è su un blocco dichiarato in [`gatewayInternalNetworks`](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e la macchina dello sviluppatore l'ha raggiunto da un indirizzo al di fuori di quel blocco: un pool di indirizzi VPN, un segmento NAT di container o WSL2, oppure una rete che non è la tua | Chiedi allo sviluppatore di eseguire `/login` dal sistema operativo host sulla tua rete. Se l'indirizzo mostrato è anche lo spazio pubblico della tua organizzazione, sostituisci la voce del gateway con un blocco che copra entrambi, fino a `/8`; una seconda voce sovrapposta è rifiutata |365| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | Il gateway è su un blocco dichiarato in [`gatewayInternalNetworks`](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e la macchina dello sviluppatore l'ha raggiunto da un indirizzo al di fuori di quel blocco: un pool di indirizzi VPN, un segmento NAT di container o WSL2, oppure una rete che non è la tua | Chiedi allo sviluppatore di eseguire `/login` dal sistema operativo host sulla tua rete. Se l'indirizzo mostrato è anche lo spazio pubblico della tua organizzazione, sostituisci la voce del gateway con un blocco che copra entrambi, fino a `/8`; una seconda voce sovrapposta è rifiutata |


301| CLI `/login`: `Could not resolve gateway host <host>` | La macchina non può risolvere il nome DNS interno del gateway, tipicamente perché non è sulla rete aziendale | Chiedi allo sviluppatore di connettersi alla tua rete o VPN, quindi riprova `/login` |370| CLI `/login`: `Could not resolve gateway host <host>` | La macchina non può risolvere il nome DNS interno del gateway, tipicamente perché non è sulla rete aziendale | Chiedi allo sviluppatore di connettersi alla tua rete o VPN, quindi riprova `/login` |

302| L'avvio esce con un errore di convalida della configurazione che nomina `store.postgres_url` | Nessun Postgres configurato; il gateway richiede Postgres | Imposta `store.postgres_url`. Per lo sviluppo locale, utilizza un container usa e getta: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |371| L'avvio esce con un errore di convalida della configurazione che nomina `store.postgres_url` | Nessun Postgres configurato; il gateway richiede Postgres | Imposta `store.postgres_url`. Per lo sviluppo locale, utilizza un container usa e getta: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

303| L'avvio esce: `requires the native binary` | In esecuzione sotto Node invece del binario nativo | Installa Claude Code con uno dei [metodi di installazione standalone](/docs/it/setup) |372| L'avvio esce: `requires the native binary` | In esecuzione sotto Node invece del binario nativo | Installa Claude Code con uno dei [metodi di installazione standalone](/docs/it/setup) |

304| L'avvio esce con un errore di scoperta OIDC dopo `config.load` | `oidc.issuer` non raggiungibile, oppure la catena TLS non è attendibile | Controlla che l'emittente sia raggiungibile dal pod e serva `/.well-known/openid-configuration`. Imposta `ca_cert_pem` per PKI privata. Se il pod raggiunge l'IdP solo attraverso un proxy forward, imposta [`oidc.use_proxy: true`](/docs/it/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); nelle versioni precedenti a v2.1.227, fornisci al pod una rotta diretta a ciascuno degli endpoint dell'IdP invece. |373| L'avvio esce con un errore di scoperta OIDC dopo `config.load` | `oidc.issuer` non raggiungibile, oppure la catena TLS non è attendibile | Controlla che l'emittente sia raggiungibile dal pod e serva `/.well-known/openid-configuration`. Imposta `ca_cert_pem` per PKI privata. Se il pod raggiunge l'IdP solo attraverso un proxy forward, imposta [`oidc.use_proxy: true`](/docs/it/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); nelle versioni precedenti a v2.1.227, fornisci al pod una rotta diretta a ciascuno degli endpoint dell'IdP invece. Se il pod inoltre non può risolvere il nome host dell'IdP, oppure il proxy rifiuta `CONNECT` a un indirizzo IP, vedi [Proxy-only egress](/docs/it/claude-apps-gateway-config#proxy-only-egress), che richiede v2.1.277 o successivo. |

305| L'avvio esce con un errore di autorizzazione Postgres | Il ruolo del database manca dei diritti DDL sul suo schema | Concedi al ruolo `CREATE` sullo schema del gateway in modo che possa creare e alterare le sue tabelle all'avvio |374| L'avvio esce con un errore di autorizzazione Postgres | Il ruolo del database manca dei diritti DDL sul suo schema | Concedi al ruolo `CREATE` sullo schema del gateway in modo che possa creare e alterare le sue tabelle all'avvio |

375| Log: `could not connect to Postgres at boot, attempt 1 of 3` | Il database non era raggiungibile quando il gateway è stato avviato, ad esempio su un'istanza fredda la cui rete è ancora in fase di avvio | Se il gateway finisce di avviarsi, non è necessaria alcuna azione. Quando il database non è raggiungibile, il gateway tenta la connessione tre volte, due secondi di distanza, prima di uscire. Se esce con `could not connect to Postgres`, controlla `store.postgres_url` e il percorso di rete al database. Se i tentativi scadono piuttosto che essere rifiutati, aumenta [`store.connect_timeout_seconds`](/docs/it/claude-apps-gateway-config#store) per dare a ciascuno più tempo. |

306| `/oauth/callback` mostra "Sign-in could not be completed" | Dominio email rifiutato, convalida id\_token non riuscita, oppure `email_verified` è esplicitamente `false`, che il gateway rifiuta sempre senza override | Controlla `allowed_email_domains` e che l'IdP restituisca un'attestazione `email` verificata. Per `email_verified: false`, correggi la verifica lato IdP. Se il tuo IdP emette email con un nome di attestazione diverso, imposta `oidc.email_claim`. |376| `/oauth/callback` mostra "Sign-in could not be completed" | Dominio email rifiutato, convalida id\_token non riuscita, oppure `email_verified` è esplicitamente `false`, che il gateway rifiuta sempre senza override | Controlla `allowed_email_domains` e che l'IdP restituisca un'attestazione `email` verificata. Per `email_verified: false`, correggi la verifica lato IdP. Se il tuo IdP emette email con un nome di attestazione diverso, imposta `oidc.email_claim`. |

307| Log: `token exchange failed request_id=<id>: id_token missing email claim` | L'IdP non include `email` nell'id\_token per impostazione predefinita. Questo rifiuto si attiva solo quando `allowed_email_domains` è impostato; senza di esso, un'email mancante conia una sessione senza email | Configura l'IdP per emettere `email` nell'id\_token. Okta: aggiungi `email` alle attestazioni del token ID di un server di autorizzazione personalizzato. Entra: aggiungi `email` come attestazione facoltativa sulla registrazione dell'app. PingFederate: abilita una Politica OpenID Connect che emette `email`. Se l'IdP serve `email` dall'endpoint userinfo ma non lo includerà nell'id\_token, come il server di autorizzazione dell'organizzazione Okta, imposta `oidc.userinfo_fallback: true`. |377| Log: `token exchange failed request_id=<id>: id_token missing email claim` | L'IdP non include `email` nell'id\_token per impostazione predefinita. Questo rifiuto si attiva solo quando `allowed_email_domains` è impostato; senza di esso, un'email mancante conia una sessione senza email | Configura l'IdP per emettere `email` nell'id\_token. Okta: aggiungi `email` alle attestazioni del token ID di un server di autorizzazione personalizzato. Entra: aggiungi `email` come attestazione facoltativa sulla registrazione dell'app. PingFederate: abilita una Politica OpenID Connect che emette `email`. Se l'IdP serve `email` dall'endpoint userinfo ma non lo includerà nell'id\_token, come il server di autorizzazione dell'organizzazione Okta, imposta `oidc.userinfo_fallback: true`. |

308| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, e gli sviluppatori vedono `Cloud gateway session expired` ogni `session.ttl_hours` | L'IdP ha accettato il token di aggiornamento ma non ha restituito alcun id\_token con esso, quindi il gateway ha chiesto all'endpoint userinfo dell'IdP le attestazioni dell'utente. L'IdP ha rifiutato il token di accesso aggiornato lì. Il gateway risponde `temporarily_unavailable`, quindi Claude Code mantiene il token di aggiornamento ma non può rinnovare la sessione. Le versioni del gateway precedenti a v2.1.260 registrano la stessa riga senza il dettaglio `(at …)`. | Imposta [`oidc.scope_on_refresh: true`](/docs/it/claude-apps-gateway-config#oidc), disponibile nel gateway v2.1.260 o successivo, in modo che la richiesta di aggiornamento chieda di nuovo `openid`. Alcuni IdP, come Okta, restituiscono un id\_token all'aggiornamento solo quando richiesto. Su PingFederate, abilita **Return ID Token On Refresh Grant** in **Applications > OAuth > OpenID Connect Policy Management** invece. La chiave non cambia il comportamento di PingFederate. Per altri IdP che ancora lo omettono, controlla se l'endpoint userinfo accetta token di accesso emessi da un aggiornamento. Come misura temporanea, aumenta [`session.ttl_hours`](/docs/it/claude-apps-gateway-config#session). Vedi [Identity provider setup](#identity-provider-setup) per il compromesso di deprovisioning. |378| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, e gli sviluppatori vedono `Cloud gateway session expired` ogni `session.ttl_hours` | L'IdP ha accettato il token di aggiornamento ma non ha restituito alcun id\_token con esso, quindi il gateway ha chiesto all'endpoint userinfo dell'IdP le attestazioni dell'utente. L'IdP ha rifiutato il token di accesso aggiornato lì. Il gateway risponde `temporarily_unavailable`, quindi Claude Code mantiene il token di aggiornamento ma non può rinnovare la sessione. Le versioni del gateway precedenti a v2.1.260 registrano la stessa riga senza il dettaglio `(at …)`. | Imposta [`oidc.scope_on_refresh: true`](/docs/it/claude-apps-gateway-config#oidc), disponibile nel gateway v2.1.260 o successivo, in modo che la richiesta di aggiornamento chieda di nuovo `openid`. Alcuni IdP, come Okta, restituiscono un id\_token all'aggiornamento solo quando richiesto. Su PingFederate, abilita **Return ID Token On Refresh Grant** in **Applications > OAuth > OpenID Connect Policy Management** invece. La chiave non cambia il comportamento di PingFederate. Per altri IdP che ancora lo omettono, controlla se l'endpoint userinfo accetta token di accesso emessi da un aggiornamento. Come misura temporanea, aumenta [`session.ttl_hours`](/docs/it/claude-apps-gateway-config#session). Vedi [Identity provider setup](#identity-provider-setup) per il compromesso di deprovisioning. |

309| Ogni richiesta Amazon Bedrock restituisce 502; il log mostra `Could not load credentials from any providers` | Su EC2, il limite di hop predefinito di IMDSv2 di 1 blocca la richiesta di metadati dell'istanza dall'interno del container. L'avvio e `/readyz` passano comunque perché l'AWS SDK risolve le credenziali dell'istanza sulla prima richiesta, non alla costruzione del client | Aumenta il limite di hop con `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, oppure impostalo nel modello di lancio. La modifica si applica a ogni container sull'istanza. Preferisci i ruoli delle attività ECS dove disponibili, che leggono le credenziali dall'endpoint delle credenziali del container ECS ed evitano completamente la modifica, oppure applica la modifica su un'istanza del gateway dedicata per limitare l'esposizione. |379| Ogni richiesta Amazon Bedrock restituisce 502; il log mostra `Could not load credentials from any providers` | Su EC2, il limite di hop predefinito di IMDSv2 di 1 blocca la richiesta di metadati dell'istanza dall'interno del container. L'avvio e `/readyz` passano comunque perché l'AWS SDK risolve le credenziali dell'istanza sulla prima richiesta, non alla costruzione del client | Aumenta il limite di hop con `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, oppure impostalo nel modello di lancio. La modifica si applica a ogni container sull'istanza. Preferisci i ruoli delle attività ECS dove disponibili, che leggono le credenziali dall'endpoint delle credenziali del container ECS ed evitano completamente la modifica, oppure applica la modifica su un'istanza del gateway dedicata per limitare l'esposizione. |

380| Al carico di picco, le risposte sono lente a iniziare o sembrano bloccarsi, oppure falliscono con un 502 `all upstreams failed` mentre l'upstream è integro | Una replica ha più richieste aperte di quante ne invia upstream contemporaneamente, quindi le richieste extra attendono all'interno del gateway. Su un upstream `provider: anthropic`, una richiesta che attende più a lungo di `timeouts.upstream_ttfb_ms` rinuncia a quel upstream, che produce il 502 quando nessun upstream successivo lo serve. Il log mostra un avviso che contiene `client requests are open`. | Aggiungi repliche, oppure aumenta il limite su ogni replica. Vedi [Concurrent upstream requests](#concurrent-upstream-requests). |

310| Errore IdP: unknown or unsupported scope | L'IdP rifiuta gli ambiti che non riconosce | Imposta `oidc.scopes` esattamente all'elenco che il tuo IdP accetta; deve includere `openid`. L'impostazione predefinita è `openid profile email offline_access`. |381| Errore IdP: unknown or unsupported scope | L'IdP rifiuta gli ambiti che non riconosce | Imposta `oidc.scopes` esattamente all'elenco che il tuo IdP accetta; deve includere `openid`. L'impostazione predefinita è `openid profile email offline_access`. |

311| Le sessioni non si rinnovano silenziosamente dopo l'impostazione di `oidc.scopes` | `offline_access` è stato eliminato dall'override | Aggiungi di nuovo `offline_access` se il tuo IdP lo supporta. Senza un token di aggiornamento, gli sviluppatori rieseguono l'accesso del browser ogni `session.ttl_hours`. |382| Le sessioni non si rinnovano silenziosamente dopo l'impostazione di `oidc.scopes` | `offline_access` è stato eliminato dall'override | Aggiungi di nuovo `offline_access` se il tuo IdP lo supporta. Senza un token di aggiornamento, gli sviluppatori rieseguono l'accesso del browser ogni `session.ttl_hours`. |

312| Il browser mostra "This request came from another site and was blocked" | POST di modulo cross-site, bloccato come protezione CSRF. Previsto per pagine incorporate o proxy | Apri il collegamento di verifica direttamente |383| Il browser mostra "This request came from another site and was blocked" | POST di modulo cross-site, bloccato come protezione CSRF. Previsto per pagine incorporate o proxy | Apri il collegamento di verifica direttamente |

Details

504| Le richieste Bedrock restituiscono `403 AccessDeniedException` | L'account non ha inviato il modulo del caso d'uso una tantum di Anthropic, l'iscrizione automatica AWS Marketplace che inizia al primo invoke dell'account non ha ancora finito, o la politica del ruolo di attività manca gli ARN del profilo di inferenza o del modello di base | Inviate il modulo del caso d'uso dalla catalogo dei modelli della console Bedrock; se è stato appena inviato o questo è il primo invoke dell'account, riprovate dopo alcuni minuti. Concedete `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` su entrambe le famiglie di ARN. |504| Le richieste Bedrock restituiscono `403 AccessDeniedException` | L'account non ha inviato il modulo del caso d'uso una tantum di Anthropic, l'iscrizione automatica AWS Marketplace che inizia al primo invoke dell'account non ha ancora finito, o la politica del ruolo di attività manca gli ARN del profilo di inferenza o del modello di base | Inviate il modulo del caso d'uso dalla catalogo dei modelli della console Bedrock; se è stato appena inviato o questo è il primo invoke dell'account, riprovate dopo alcuni minuti. Concedete `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` su entrambe le famiglie di ARN. |

505| Bedrock restituisce una `ValidationException` dicendo che la velocità effettiva on-demand non è supportata | Una voce `models:` personalizzata mappa a un ID del modello di base semplice che la regione serve solo tramite profili di inferenza | Mappate il modello all'ID del profilo di inferenza cross-region (`us.anthropic.*`) al posto; il catalogo integrato lo fa già |505| Bedrock restituisce una `ValidationException` dicendo che la velocità effettiva on-demand non è supportata | Una voce `models:` personalizzata mappa a un ID del modello di base semplice che la regione serve solo tramite profili di inferenza | Mappate il modello all'ID del profilo di inferenza cross-region (`us.anthropic.*`) al posto; il catalogo integrato lo fa già |

506| L'attività ECS si ferma con `ResourceInitializationError` prima che il gateway registri qualcosa | Il ruolo di esecuzione non può leggere i segreti di Secrets Manager, o le subnet private non hanno percorso verso Secrets Manager o ECR | Concedete `secretsmanager:GetSecretValue` sui tre ARN dei segreti `gateway-` al ruolo di esecuzione, e fornite uscita tramite il gateway NAT, o, senza uno, endpoint dell'interfaccia per Secrets Manager, ECR e CloudWatch Logs, che il driver `awslogs` ha bisogno nella stessa fase, più un endpoint del gateway S3 |506| L'attività ECS si ferma con `ResourceInitializationError` prima che il gateway registri qualcosa | Il ruolo di esecuzione non può leggere i segreti di Secrets Manager, o le subnet private non hanno percorso verso Secrets Manager o ECR | Concedete `secretsmanager:GetSecretValue` sui tre ARN dei segreti `gateway-` al ruolo di esecuzione, e fornite uscita tramite il gateway NAT, o, senza uno, endpoint dell'interfaccia per Secrets Manager, ECR e CloudWatch Logs, che il driver `awslogs` ha bisogno nella stessa fase, più un endpoint del gateway S3 |

507| L'avvio del gateway esce con un errore di timeout della connessione Postgres | Il gruppo di sicurezza del database non ammette il gruppo di sicurezza del gateway sulla porta 5432, o il servizio viene eseguito al di fuori del VPC del database; lo store smette di aspettare dopo 5 secondi | Consentite 5432 dal gruppo di sicurezza del gateway su quello del database, ed eseguite il servizio nello stesso VPC del gruppo di subnet del DB |507| L'avvio del gateway esce con un errore di timeout della connessione Postgres | Il gruppo di sicurezza del database non ammette il gruppo di sicurezza del gateway sulla porta 5432, o il servizio viene eseguito al di fuori del VPC del database | Consentite 5432 dal gruppo di sicurezza del gateway su quello del database, ed eseguite il servizio nello stesso VPC del gruppo di subnet del DB |

508| L'avvio del gateway esce con un errore di verifica del certificato TLS di Postgres | La stringa di connessione imposta `sslmode=verify-full` ma l'immagine non affida il bundle CA di RDS: il bundle non è stato copiato nell'immagine, o `NODE_EXTRA_CA_CERTS` non punta ad esso | Aggiungete le due righe del Dockerfile del passaggio di compilazione che copiano il bundle e impostano `NODE_EXTRA_CA_CERTS`, quindi ricompilate, spingete sotto un nuovo tag e ridistribuite |508| L'avvio del gateway esce con un errore di verifica del certificato TLS di Postgres | La stringa di connessione imposta `sslmode=verify-full` ma l'immagine non affida il bundle CA di RDS: il bundle non è stato copiato nell'immagine, o `NODE_EXTRA_CA_CERTS` non punta ad esso | Aggiungete le due righe del Dockerfile del passaggio di compilazione che copiano il bundle e impostano `NODE_EXTRA_CA_CERTS`, quindi ricompilate, spingete sotto un nuovo tag e ridistribuite |

509| Le risposte di streaming si interrompono a metà flusso dopo un periodo tranquillo | Un gateway più vecchio di v2.1.229 su un upstream Bedrock o Claude Platform su AWS non invia nulla mentre l'upstream è tranquillo, ad esempio durante il pensiero esteso senza output trasmesso. L'ALB chiude una connessione dopo 60 secondi senza dati per impostazione predefinita, quindi taglia il flusso a quel gap. I gateway v2.1.229 e successivi mantengono un flusso tranquillo sotto quel timeout: su quegli upstream il gateway emette un evento SSE `ping` una volta che circa 15 secondi passano senza dati di flusso, e su un upstream API Anthropic rilancia i ping propri dell'API | Aggiornate il gateway a v2.1.229 o successivo, o impostate l'attributo `idle_timeout.timeout_seconds` su `3600`, tramite `modify-load-balancer-attributes` o l'annotazione `load-balancer-attributes` Ingress su EKS |509| Le risposte di streaming si interrompono a metà flusso dopo un periodo tranquillo | Un gateway più vecchio di v2.1.229 su un upstream Bedrock o Claude Platform su AWS non invia nulla mentre l'upstream è tranquillo, ad esempio durante il pensiero esteso senza output trasmesso. L'ALB chiude una connessione dopo 60 secondi senza dati per impostazione predefinita, quindi taglia il flusso a quel gap. I gateway v2.1.229 e successivi mantengono un flusso tranquillo sotto quel timeout: su quegli upstream il gateway emette un evento SSE `ping` una volta che circa 15 secondi passano senza dati di flusso, e su un upstream API Anthropic rilancia i ping propri dell'API | Aggiornate il gateway a v2.1.229 o successivo, o impostate l'attributo `idle_timeout.timeout_seconds` su `3600`, tramite `modify-load-balancer-attributes` o l'annotazione `load-balancer-attributes` Ingress su EKS |

510 510 

Details

282 282 

283Ogni sessione mostra un indicatore di diff con righe aggiunte e rimosse, come `+42 -18`. Selezionarlo per aprire la visualizzazione diff, lasciare commenti in linea su righe specifiche e inviarli a Claude con il messaggio successivo.283Ogni sessione mostra un indicatore di diff con righe aggiunte e rimosse, come `+42 -18`. Selezionarlo per aprire la visualizzazione diff, lasciare commenti in linea su righe specifiche e inviarli a Claude con il messaggio successivo.

284 284 

285La visualizzazione diff confronta le modifiche della sessione rispetto al suo ramo base per impostazione predefinita. Per confrontare con qualsiasi altro ramo nel repository, selezionare **Compare against** e sceglierne uno.

286 

285Claude Code calcola questi diff, inclusi i diff per file mostrati mentre Claude modifica, dal contenuto grezzo del blob git, quindi i driver diff e i filtri `textconv` configurati nel repository non si applicano. Per un file in un repository che non è uno dei checkout della sessione stessa, come uno clonato all'interno dell'area di lavoro durante la sessione, il diff per file mostra la modifica di Claude stessa piuttosto che un confronto git.287Claude Code calcola questi diff, inclusi i diff per file mostrati mentre Claude modifica, dal contenuto grezzo del blob git, quindi i driver diff e i filtri `textconv` configurati nel repository non si applicano. Per un file in un repository che non è uno dei checkout della sessione stessa, come uno clonato all'interno dell'area di lavoro durante la sessione, il diff per file mostra la modifica di Claude stessa piuttosto che un confronto git.

286 288 

287Vedere [Rivedere e iterare](/docs/it/web-quickstart#review-and-iterate) per la procedura dettagliata completa inclusa la creazione di PR. Per fare in modo che Claude monitori automaticamente la PR per errori CI e commenti di revisione, vedere [Correzione automatica delle pull request](#auto-fix-pull-requests).289Vedere [Rivedere e iterare](/docs/it/web-quickstart#review-and-iterate) per la procedura dettagliata completa inclusa la creazione di PR. Per fare in modo che Claude monitori automaticamente la PR per errori CI e commenti di revisione, vedere [Correzione automatica delle pull request](#auto-fix-pull-requests).

Details

164 Archiviare un ambiente164 Archiviare un ambiente

165</h3>165</h3>

166 166 

167Per archiviare un ambiente, apritelo per la modifica e selezionate **Archive**. Non potete eliminare un ambiente, solo archiviarlo.167Per archiviare uno dei vostri ambienti, apritelo per la modifica e selezionate **Archive**. Un Owner archivia un [ambiente condiviso](#organization-shared-environments) dalla pagina **Cloud environments** nelle impostazioni di amministrazione. Non potete eliminare un ambiente, solo archiviarlo.

168 168 

169L'archiviazione influisce sulle nuove sessioni, non su quelle in esecuzione:169L'archiviazione influisce sulle nuove sessioni, non su quelle in esecuzione:

170 170 


177 Ambienti condivisi dell'organizzazione177 Ambienti condivisi dell'organizzazione

178</h3>178</h3>

179 179 

180Sui piani Team ed Enterprise, un Owner può creare ambienti cloud che sono condivisi con ogni membro dell'organizzazione. Lo stesso ruolo gestisce tutto il resto sulla pagina **Cloud environments** dell'amministrazione, inclusi gli [ambienti self-hosted](/docs/it/self-hosted-environments); il ruolo Admin non può aprire la pagina. L'elenco completo dei ruoli che possono aprirla è quello per [gestire le impostazioni gestite dal server](/docs/it/server-managed-settings#access-control). Gli ambienti condivisi appaiono nel selettore di ambiente di ogni membro insieme ai loro ambienti personali, quindi un team può standardizzare su una configurazione invece di farla ricreare a ogni membro.180Sui piani Team ed Enterprise, un Owner può creare ambienti cloud che sono condivisi con ogni membro dell'organizzazione. Lo stesso ruolo gestisce tutto il resto sulla pagina **Cloud environments** dell'amministrazione, inclusi gli [ambienti self-hosted](/docs/it/self-hosted-environments); il ruolo Admin non può aprire la pagina. L'elenco completo dei ruoli che possono aprirla è quello per [gestire le impostazioni gestite dal server](/docs/it/server-managed-settings#access-control).

181 181 

182Create, modificate e archiviate gli ambienti condivisi dalla pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings). Un ambiente condiviso si apre anche dal [selettore di ambiente](#configure-your-environment) su [claude.ai/code](https://claude.ai/code): un Owner può modificarlo lì. Gli altri membri lo vedono in sola lettura. Ogni ambiente condiviso ha un nome, un [livello di accesso di rete](#access-levels), [variabili di ambiente](#set-environment-variables) in formato `.env` e uno [script di configurazione](#setup-scripts). Gli Owner scelgono l'[ambiente predefinito](#the-default-environment) dell'organizzazione separatamente, su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).182Gli ambienti condivisi appaiono nel [selettore di ambiente](#configure-your-environment) di ogni membro sotto un'intestazione **Organization**, dopo gli ambienti personali del membro sotto **Personal**, quindi un team può standardizzare su una configurazione invece di farla ricreare a ogni membro. Selezionando l'icona delle impostazioni di un ambiente condiviso lì apre un riepilogo di sola lettura della sua configurazione per ogni membro, Owner inclusi.

183 

184Un Owner rende un ambiente disponibile all'organizzazione in uno di due modi:

185 

186* **Creare un ambiente condiviso**: utilizzate la pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings), che è anche dove gli Owner modificano e archiviano gli ambienti condivisi. Ognuno ha un nome, un [livello di accesso di rete](#access-levels), [variabili di ambiente](#set-environment-variables) in formato `.env` e uno [script di configurazione](#setup-scripts).

187* **Condividere un ambiente personale**: aprite uno dei vostri ambienti per la modifica nel selettore di ambiente, quindi condividetelo dalla riga **Who can use it**. L'ambiente mantiene il suo ID, quindi le sessioni e le routine che lo utilizzano già non sono interessate, e ogni membro può quindi vederlo e avviare sessioni in esso.

188 

189Gli Owner scelgono l'[ambiente predefinito](#the-default-environment) dell'organizzazione separatamente, su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

183 190 

184Le sessioni di ogni membro in un ambiente condiviso leggono le sue variabili, quindi non includete segreti in esse. Le [credenziali API](#add-api-credentials), che danno alle sessioni una chiave che non possono leggere, non sono ancora disponibili sui piani Team o Enterprise.191Le sessioni di ogni membro in un ambiente condiviso leggono le sue variabili, quindi non includete segreti in esse. Le [credenziali API](#add-api-credentials), che danno alle sessioni una chiave che non possono leggere, non sono ancora disponibili sui piani Team o Enterprise.

185 192 


198 205 

199Ogni ambiente imposta un livello di accesso di rete, che controlla le connessioni in uscita che le sue sessioni possono effettuare. Il livello predefinito, **Trusted**, consente i registri dei pacchetti e altri [domini consentiti](#default-allowed-domains); **Custom** accetta il vostro elenco di domini.206Ogni ambiente imposta un livello di accesso di rete, che controlla le connessioni in uscita che le sue sessioni possono effettuare. Il livello predefinito, **Trusted**, consente i registri dei pacchetti e altri [domini consentiti](#default-allowed-domains); **Custom** accetta il vostro elenco di domini.

200 207 

201Per modificare l'accesso di rete di un ambiente, [apritelo per la modifica](#configure-your-environment) e utilizzate il selettore **Network access** nella finestra di dialogo. L'icona cloud che apre il selettore appare sulle superfici dell'app elencate sotto [L'ambiente Default](#the-default-environment) e nell'[editor di routine](/docs/it/routines#environments-and-network-access); gli ambienti personali non hanno una pagina separata nelle impostazioni del vostro account claude.ai.208Per modificare l'accesso di rete di un ambiente, [apritelo per la modifica](#configure-your-environment) e utilizzate il selettore **Network access** nella finestra di dialogo. Un [ambiente condiviso](#organization-shared-environments) si apre in sola lettura lì, quindi un Owner modifica il suo accesso di rete dalla pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings) invece. L'icona cloud che apre il selettore appare sulle superfici dell'app elencate sotto [L'ambiente Default](#the-default-environment) e nell'[editor di routine](/docs/it/routines#environments-and-network-access); gli ambienti personali non hanno una pagina separata nelle impostazioni del vostro account claude.ai.

202 209 

203<Note>210<Note>

204 I connettori MCP che abilitate su una sessione o routine funzionano senza aggiungere i loro host ai **Allowed domains**, perché il traffico del connettore viaggia attraverso i server di Anthropic piuttosto che attraverso la rete della sessione. Questo si basa sullo stesso canale legato ad Anthropic notato sotto [Sicurezza e isolamento](/docs/it/claude-code-on-the-web#security-and-isolation). Disabilitate qualsiasi connettore che non vi serve per limitare quali strumenti Claude può raggiungere.211 I connettori MCP che abilitate su una sessione o routine funzionano senza aggiungere i loro host ai **Allowed domains**, perché il traffico del connettore viaggia attraverso i server di Anthropic piuttosto che attraverso la rete della sessione. Questo si basa sullo stesso canale legato ad Anthropic notato sotto [Sicurezza e isolamento](/docs/it/claude-code-on-the-web#security-and-isolation). Disabilitate qualsiasi connettore che non vi serve per limitare quali strumenti Claude può raggiungere.

errors.md +2 −0

Details

1740 1740 

1741**Cosa fare:**1741**Cosa fare:**

1742 1742 

1743Questi passaggi cambiano uno dei tuoi ambienti. Un [organization-shared environment](/docs/it/cloud-environments#organization-shared-environments) si apre in sola lettura nel selettore, quindi chiedi a un Owner di cambiare il suo accesso di rete dalla pagina **Cloud environments** in [admin settings](https://claude.ai/admin-settings).

1744 

1743* Apri la routine per la modifica, o avvia una sessione cloud. Seleziona l'icona cloud che mostra il nome del tuo ambiente, come **Default**, per aprire il selettore. Passa il mouse sopra il tuo ambiente e fai clic sull'icona delle impostazioni.1745* Apri la routine per la modifica, o avvia una sessione cloud. Seleziona l'icona cloud che mostra il nome del tuo ambiente, come **Default**, per aprire il selettore. Passa il mouse sopra il tuo ambiente e fai clic sull'icona delle impostazioni.

1744* Nella finestra di dialogo **Update cloud environment**, cambia **Network access** da **Trusted** a **Custom**, quindi aggiungi il dominio bloccato a **Allowed domains**. Inserisci un dominio per riga. Seleziona **Also include default list of common package managers** per mantenere la [allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) insieme ai tuoi domini personalizzati. Seleziona **Full** invece se desideri accesso senza restrizioni.1746* Nella finestra di dialogo **Update cloud environment**, cambia **Network access** da **Trusted** a **Custom**, quindi aggiungi il dominio bloccato a **Allowed domains**. Inserisci un dominio per riga. Seleziona **Also include default list of common package managers** per mantenere la [allowlist predefinita](/docs/it/cloud-environments#default-allowed-domains) insieme ai tuoi domini personalizzati. Seleziona **Full** invece se desideri accesso senza restrizioni.

1745* Fai clic su **Save changes**. La prossima esecuzione utilizza l'allowlist aggiornata.1747* Fai clic su **Save changes**. La prossima esecuzione utilizza l'allowlist aggiornata.

Details

328 328 

329Nella v2.1.158 attraverso v2.1.206, la modalità auto era disattivata su questi provider finché non impostavi `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` su questi provider a meno che la variabile non fosse anche impostata. La variabile è ancora accettata per compatibilità e non ha effetto da v2.1.207 in poi.329Nella v2.1.158 attraverso v2.1.206, la modalità auto era disattivata su questi provider finché non impostavi `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` su questi provider a meno che la variabile non fosse anche impostata. La variabile è ancora accettata per compatibilità e non ha effetto da v2.1.207 in poi.

330 330 

331<h4 id="server-side-classifier-review">331<h3 id="server-side-classifier-review">

332 Revisione del classificatore lato server332 Revisione del classificatore lato server

333</h4>333</h3>

334 

335Su piani Enterprise e su account che utilizzano l'API Claude, su [Claude Platform su AWS](/docs/it/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, e ogni volta che punti `ANTHROPIC_BASE_URL` a un [gateway LLM o proxy](/docs/it/llm-gateway), Claude Code in modalità auto chiede al server di esaminare [le azioni che vanno al classificatore](#how-the-classifier-evaluates-actions) come parte delle richieste del modello della sessione. Dove il server le esamina, i suoi verdetti decidono quelle azioni. Dove non lo fa, il più delle volte perché un gateway LLM o proxy interferisce con il traffico, o perché la piattaforma, la regione o le credenziali non hanno ancora controlli lato server, Claude Code ricade alle proprie richieste del classificatore, e una volta che quel fallback si mantiene per il resto della sessione mostra un [avviso sulle spese di richiesta del classificatore](/docs/it/auto-mode-classifier-billing) su account dove quelle richieste vengono fatturate. Per saltare la richiesta al server e utilizzare sempre le proprie richieste del classificatore di Claude Code, imposta [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/it/env-vars). La variabile non viene letta su una connessione diretta all'API Anthropic. Se imposti `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` e lasci `CLAUDE_CODE_AUTO_MODE_SERVER` non impostato, Claude Code smette anche di chiedere al server.

334 336 

335Su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, Claude Code esamina le azioni in modalità auto con le proprie richieste del classificatore per impostazione predefinita. Per fare in modo che il classificatore lato server della piattaforma esamini [le azioni che vanno al classificatore](#how-the-classifier-evaluates-actions) come parte delle richieste del modello della sessione invece, imposta [`CLAUDE_CODE_AUTO_MODE_SERVER=1`](/docs/it/env-vars). Dove la piattaforma esegue il classificatore, i suoi verdetti decidono quelle azioni; dove non lo fa, Claude Code ricade alle proprie richieste del classificatore. Nella v2.1.271 e v2.1.272, chiedere alla piattaforma era l'impostazione predefinita su questi provider.337Chiedere al server per impostazione predefinita richiede Claude Code v2.1.278 o successivo.

336 338 

337<h3 id="what-the-classifier-blocks-by-default">339<h3 id="what-the-classifier-blocks-by-default">

338 Cosa blocca il classificatore per impostazione predefinita340 Cosa blocca il classificatore per impostazione predefinita


515 517 

516 La prima richiesta in modalità auto della sessione convalida l'impostazione predefinita di Sonnet 5: se la richiesta ha successo, Sonnet 5 rimane il modello classificatore della sessione, e se fallisce perché il modello non è disponibile, la sessione utilizza il fallback invece. Dopo che quella convalida si stabilizza, il modello del classificatore non cambia per la sessione.518 La prima richiesta in modalità auto della sessione convalida l'impostazione predefinita di Sonnet 5: se la richiesta ha successo, Sonnet 5 rimane il modello classificatore della sessione, e se fallisce perché il modello non è disponibile, la sessione utilizza il fallback invece. Dopo che quella convalida si stabilizza, il modello del classificatore non cambia per la sessione.

517 519 

518 Su piani Enterprise e su account che utilizzano l'API Claude, [Claude Platform su AWS](/docs/it/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry, le chiamate del classificatore contano verso il tuo utilizzo di token. Ogni controllo invia una porzione della trascrizione più l'azione in sospeso, aggiungendo un round-trip prima dell'esecuzione. Le letture e le modifiche della directory di lavoro al di fuori dei percorsi protetti saltano il classificatore, quindi l'overhead proviene principalmente da comandi shell e operazioni di rete. Su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, puoi spostare la revisione nelle richieste del modello della sessione invece; vedi [Revisione del classificatore lato server](#server-side-classifier-review).520 Su piani Enterprise e su account che utilizzano l'API Claude, [Claude Platform su AWS](/docs/it/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry, le chiamate del classificatore contano verso il tuo utilizzo di token. Ogni controllo invia una porzione della trascrizione più l'azione in sospeso, aggiungendo un round-trip prima dell'esecuzione. Le letture e le modifiche della directory di lavoro al di fuori dei percorsi protetti saltano il classificatore, quindi l'overhead proviene principalmente da comandi shell e operazioni di rete. Dove il server esamina le azioni come parte delle richieste del modello della sessione, non ci sono richieste del classificatore separate da contare; vedi [Revisione del classificatore lato server](#server-side-classifier-review).

519 521 

520 L'accesso alla rete in sandbox non aggiunge richieste del classificatore per connessione. Il classificatore giudica [gli host che un comando nomina](/docs/it/sandboxing#per-command-allowed-domains-in-auto-mode) insieme al comando in una revisione, e Claude Code controlla ogni connessione rispetto all'elenco approvato senza chiamare il classificatore di nuovo.522 L'accesso alla rete in sandbox non aggiunge richieste del classificatore per connessione. Il classificatore giudica [gli host che un comando nomina](/docs/it/sandboxing#per-command-allowed-domains-in-auto-mode) insieme al comando in una revisione, e Claude Code controlla ogni connessione rispetto all'elenco approvato senza chiamare il classificatore di nuovo.

521 </Accordion>523 </Accordion>

routines.md +18 −3

Details

52 52 

53Il modulo di creazione configura il prompt della routine, i repository, l'ambiente, i connector e i trigger.53Il modulo di creazione configura il prompt della routine, i repository, l'ambiente, i connector e i trigger.

54 54 

55Le routine vengono eseguite autonomamente come sessioni cloud complete di Claude Code: non c'è un selettore di modalità di autorizzazione e nessun prompt di approvazione durante un'esecuzione. La sessione può eseguire comandi shell, utilizzare [skills](/docs/it/skills) impegnate nel repository clonato e chiamare qualsiasi connector incluso. Ciò che una routine può raggiungere è determinato dai repository che selezioni, dall'[ambiente](/docs/it/cloud-environments) accesso di rete e variabili, e dai connector che includi. Delimita ognuno di questi a ciò di cui la routine ha effettivamente bisogno.55Le routine vengono eseguite autonomamente come sessioni cloud complete di Claude Code: non c'è un selettore di modalità di autorizzazione e la sessione esegue comandi shell, utilizza [skills](/docs/it/skills) impegnate nel repository clonato e chiama qualsiasi connector incluso, il tutto senza fermarsi per l'approvazione a parte alcune azioni di [artifact](/docs/it/artifacts).

56 

57Ciò che una routine può raggiungere è determinato dai repository che selezioni, dall'[ambiente](/docs/it/cloud-environments) accesso di rete e variabili, e dai connector che includi. Delimita ognuno di questi a ciò di cui la routine ha effettivamente bisogno.

58 

59Quando la pianificazione della routine o **Run now** avvia un'esecuzione, Claude ripubblica un artifact esistente senza chiedere solo quando tutti questi elementi sono veri:

60 

61* Puoi modificare l'artifact e appartiene alla tua organizzazione

62* L'artifact non è condiviso pubblicamente e non è condiviso con persone specifiche o la tua organizzazione con l'ultima versione scelta come versione che i visualizzatori vedono

63* La pubblicazione contiene solo la pagina, senza file di supporto o altro aggiunto, e non forza una versione più recente

64* La pagina non contiene alcun grant che vada oltre la pagina, come [connector calls](/docs/it/artifacts#pull-live-data-with-mcp-connectors)

65 

66In ogni altro caso, inclusa la pubblicazione di un nuovo artifact, Claude chiede prima. Quando il lavoro di una routine è mantenere una pagina aggiornata, dagli un artifact che hai già pubblicato.

56 67 

57Le routine appartengono al tuo account claude.ai individuale. Non sono condivise con i compagni di squadra e contano rispetto al limite di esecuzione giornaliero del tuo account. Tutto ciò che una routine fa attraverso la tua identità GitHub connessa o i connector appare come te: i commit e le pull request portano il tuo utente GitHub e i messaggi Slack, i ticket Linear o altre azioni del connector utilizzano i tuoi account collegati per quei servizi.68Le routine appartengono al tuo account claude.ai individuale. Non sono condivise con i compagni di squadra e contano rispetto al limite di esecuzione giornaliero del tuo account. Tutto ciò che una routine fa attraverso la tua identità GitHub connessa o i connector appare come te: i commit e le pull request portano il tuo utente GitHub e i messaggi Slack, i ticket Linear o altre azioni del connector utilizzano i tuoi account collegati per quei servizi.

58 69 


349 360 

350Le routine necessitano dell'accesso a GitHub per clonare i repository. Quando si crea una routine dalla CLI con `/schedule`, Claude verifica se l'account ha accesso a GitHub per il repository da cui è stata eseguita e, se non lo ha, aggiunge una nota di configurazione che indica come concedere l'accesso. Vedere [Opzioni di autenticazione GitHub](/docs/it/claude-code-on-the-web#github-authentication-options) per i due modi per concedere l'accesso.361Le routine necessitano dell'accesso a GitHub per clonare i repository. Quando si crea una routine dalla CLI con `/schedule`, Claude verifica se l'account ha accesso a GitHub per il repository da cui è stata eseguita e, se non lo ha, aggiunge una nota di configurazione che indica come concedere l'accesso. Vedere [Opzioni di autenticazione GitHub](/docs/it/claude-code-on-the-web#github-authentication-options) per i due modi per concedere l'accesso.

351 362 

363Se la connessione GitHub è mancante o scaduta quando un'esecuzione è dovuta, la routine salta le esecuzioni finché non si riconnette, fino a 72 ore. Riconnettere GitHub entro quella finestra e la routine riprende automaticamente. Dopo 72 ore senza una connessione, la routine si disattiva e la si riattiva dopo aver riconnesso GitHub.

364 

352Ogni repository aggiunto viene clonato ad ogni esecuzione. Claude inizia dal ramo predefinito del repository a meno che il prompt non specifichi diversamente.365Ogni repository aggiunto viene clonato ad ogni esecuzione. Claude inizia dal ramo predefinito del repository a meno che il prompt non specifichi diversamente.

353 366 

354Claude spinge il suo lavoro su rami con prefisso `claude/`, che sono sempre accettati. Quando il prompt indirizza Claude a eseguire il push su un altro ramo, Claude Code verifica prima il push e lo rifiuta se una qualsiasi delle seguenti condizioni è vera:367Claude spinge il suo lavoro su rami con prefisso `claude/`, che sono sempre accettati. Quando il prompt indirizza Claude a eseguire il push su un altro ramo, Claude Code verifica prima il push e lo rifiuta se una qualsiasi delle seguenti condizioni è vera:


377 390 

378L'ambiente **Default** utilizza l'accesso alla rete **Trusted**, che consente solo l'[elenco di autorizzazione predefinito](/docs/it/cloud-environments#default-allowed-domains) attraverso la rete della sessione. Le richieste su quel percorso agli host al di fuori dell'elenco di autorizzazione non riescono con `403` e `x-deny-reason: host_not_allowed`. Il traffico del connettore MCP viene instradato attraverso i server di Anthropic piuttosto che su quel percorso, quindi i connettori aggiunti alla routine funzionano senza aggiungere i loro host ai **Allowed domains**. Rimuovere eventuali connettori non necessari in [Connettori](#connectors).391L'ambiente **Default** utilizza l'accesso alla rete **Trusted**, che consente solo l'[elenco di autorizzazione predefinito](/docs/it/cloud-environments#default-allowed-domains) attraverso la rete della sessione. Le richieste su quel percorso agli host al di fuori dell'elenco di autorizzazione non riescono con `403` e `x-deny-reason: host_not_allowed`. Il traffico del connettore MCP viene instradato attraverso i server di Anthropic piuttosto che su quel percorso, quindi i connettori aggiunti alla routine funzionano senza aggiungere i loro host ai **Allowed domains**. Rimuovere eventuali connettori non necessari in [Connettori](#connectors).

379 392 

380Per consentire domini aggiuntivi:393Per consentire domini aggiuntivi su uno dei vostri ambienti, seguire questi passaggi. Un [ambiente condiviso dall'organizzazione](/docs/it/cloud-environments#organization-shared-environments) si apre in sola lettura qui, quindi un Proprietario cambia il suo accesso alla rete dalla pagina **Cloud environments** nelle [impostazioni di amministrazione](https://claude.ai/admin-settings).

381 394 

382<Steps>395<Steps>

383 <Step title="Aprire la routine per la modifica">396 <Step title="Aprire la routine per la modifica">


413 426 

414Le esecuzioni una tantum non contano rispetto al limite giornaliero di routine. Riducono l'utilizzo regolare dell'abbonamento come qualsiasi altra sessione.427Le esecuzioni una tantum non contano rispetto al limite giornaliero di routine. Riducono l'utilizzo regolare dell'abbonamento come qualsiasi altra sessione.

415 428 

429Mentre l'abbonamento è in pausa, le routine vengono messe in sospeso e non vengono eseguite. Una volta che l'abbonamento è di nuovo attivo, riattivale.

430 

416<h2 id="troubleshooting">431<h2 id="troubleshooting">

417 Troubleshooting432 Troubleshooting

418</h2>433</h2>


427 442 

428* Siete autenticati con una chiave API Console, un [profilo Anthropic o credenziale di federazione](/docs/it/authentication#anthropic-profiles-and-federation-credentials), o un provider cloud come Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry. `/schedule` richiede un accesso con abbonamento claude.ai. Con una chiave API Console o un profilo, e il recupero dei flag di funzionalità abilitato, l'invio di `/schedule` mostra invece `/schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access`. Con un accesso da provider cloud, vedete ancora `Unknown command: /schedule`. Se `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN` è impostato nella vostra shell, o `apiKeyHelper` è impostato in `settings.json`, rimuovetelo prima, poiché questi hanno la precedenza su un accesso claude.ai. Un profilo o credenziale di federazione ha la precedenza anche, quindi disattivate anche quello443* Siete autenticati con una chiave API Console, un [profilo Anthropic o credenziale di federazione](/docs/it/authentication#anthropic-profiles-and-federation-credentials), o un provider cloud come Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry. `/schedule` richiede un accesso con abbonamento claude.ai. Con una chiave API Console o un profilo, e il recupero dei flag di funzionalità abilitato, l'invio di `/schedule` mostra invece `/schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access`. Con un accesso da provider cloud, vedete ancora `Unknown command: /schedule`. Se `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN` è impostato nella vostra shell, o `apiKeyHelper` è impostato in `settings.json`, rimuovetelo prima, poiché questi hanno la precedenza su un accesso claude.ai. Un profilo o credenziale di federazione ha la precedenza anche, quindi disattivate anche quello

429* Siete completamente disconnessi, senza chiave API o altra credenziale. Con il recupero dei flag di funzionalità abilitato, l'invio di `/schedule` mostra `/schedule requires a claude.ai subscription. Run /login to sign in with your claude.ai account.` Prima della v2.1.268, una sessione disconnessa mostrava lo stesso messaggio Claude for Enterprise di una chiave API Console444* Siete completamente disconnessi, senza chiave API o altra credenziale. Con il recupero dei flag di funzionalità abilitato, l'invio di `/schedule` mostra `/schedule requires a claude.ai subscription. Run /login to sign in with your claude.ai account.` Prima della v2.1.268, una sessione disconnessa mostrava lo stesso messaggio Claude for Enterprise di una chiave API Console

430* Siete all'interno di una sessione cloud. Gestite le routine dall'[interfaccia web](https://claude.ai/code/routines) invece445* Siete all'interno di una sessione cloud, dove l'invio di `/schedule` risponde che il comando non è disponibile in quell'ambiente. Gestite le routine dall'[interfaccia web](https://claude.ai/code/routines) invece

431* La politica della vostra organizzazione disabilita [le sessioni cloud](/docs/it/claude-code-on-the-web), su cui le routine vengono eseguite. In questo caso, l'invio di `/schedule` risponde [`Cloud sessions are disabled by your organization's policy`](/docs/it/errors#cloud-sessions-are-disabled-by-your-organizations-policy) invece. Prima della v2.1.268, restituiva `Unknown command: /schedule`446* La politica della vostra organizzazione disabilita [le sessioni cloud](/docs/it/claude-code-on-the-web), su cui le routine vengono eseguite. In questo caso, l'invio di `/schedule` risponde [`Cloud sessions are disabled by your organization's policy`](/docs/it/errors#cloud-sessions-are-disabled-by-your-organizations-policy) invece. Prima della v2.1.268, restituiva `Unknown command: /schedule`

432* Un Owner ha [disattivato le routine](#routines-are-disabled-by-your-organizations-policy) per la vostra organizzazione Team o Enterprise. Prima della v2.1.227, il comando appariva ancora in questo caso, e claude.ai rifiutava la routine quando Claude tentava di crearla o eseguirla447* Un Owner ha [disattivato le routine](#routines-are-disabled-by-your-organizations-policy) per la vostra organizzazione Team o Enterprise. Prima della v2.1.227, il comando appariva ancora in questo caso, e claude.ai rifiutava la routine quando Claude tentava di crearla o eseguirla

433 448 

Details

168* Il runner imposta `GCM_INTERACTIVE=never`, in modo che Git Credential Manager non apra una finestra di dialogo di accesso.168* Il runner imposta `GCM_INTERACTIVE=never`, in modo che Git Credential Manager non apra una finestra di dialogo di accesso.

169* Il runner cancella `core.askPass`, quindi se usi un helper askpass, impostalo attraverso la variabile di ambiente `GIT_ASKPASS` invece.169* Il runner cancella `core.askPass`, quindi se usi un helper askpass, impostalo attraverso la variabile di ambiente `GIT_ASKPASS` invece.

170 170 

171Se il tuo host git rifiuta la credenziale, o non ne hai configurata una, il runner riprova alcune volte e poi fallisce la preparazione del repository. Il runner non passa queste impostazioni nell'ambiente della sessione.171Se il tuo host git rifiuta la credenziale, o non ne hai configurata una, il runner riprova alcune volte e poi fallisce la preparazione del repository quando il repository è quello in cui la sessione spinge i risultati. Per un repository dal quale la sessione legge solo, [Troubleshooting](#troubleshooting) copre quando il runner lo salta invece. Il runner non passa queste impostazioni nell'ambiente della sessione.

172 172 

173Se le directory di checkout sono di proprietà di un uid diverso dal processo runner, git rifiuta di operare su di esse; aggiungi `safe.directory`:173Se le directory di checkout sono di proprietà di un uid diverso dal processo runner, git rifiuta di operare su di esse; aggiungi `safe.directory`:

174 174 


531* **Le sessioni non riescono a raggiungere la rete attraverso un proxy di uscita autenticante**: quando l'origine impostata con [`--proxy-authorization-command` o `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) fallisce, scade dopo 30 secondi o produce un valore vuoto, il runner risponde a quella connessione con `502 Bad Gateway` e registra il motivo. Il runner redige lo stderr del comando in quel log e non registra mai il valore dell'intestazione. Con `--proxy-authorization-command`, eseguire il comando stesso sull'host per confermare che stampa l'intero valore dell'intestazione su stdout. Se il runner esce invece all'avvio con `could not start the proxy-authorization listener`, non ha potuto aprire il suo listener di loopback.531* **Le sessioni non riescono a raggiungere la rete attraverso un proxy di uscita autenticante**: quando l'origine impostata con [`--proxy-authorization-command` o `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) fallisce, scade dopo 30 secondi o produce un valore vuoto, il runner risponde a quella connessione con `502 Bad Gateway` e registra il motivo. Il runner redige lo stderr del comando in quel log e non registra mai il valore dell'intestazione. Con `--proxy-authorization-command`, eseguire il comando stesso sull'host per confermare che stampa l'intero valore dell'intestazione su stdout. Se il runner esce invece all'avvio con `could not start the proxy-authorization listener`, non ha potuto aprire il suo listener di loopback.

532* **Il runner registra righe `Poll failed` contenenti `rejecting the malformed poll response`**: il runner ha ricevuto una risposta di work-poll il cui corpo non è il JSON previsto dalla coda, il più delle volte perché qualcosa tra il runner e `api.anthropic.com`, come un proxy intercettante o un portale captive, ha risposto con la sua stessa pagina. Il runner rifiuta la risposta, la conta sotto il tipo `transport` della [metrica](/docs/it/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_poll_errors_total`, e riprova secondo la pianificazione di poll fallito descritta in [Session lifecycle](/docs/it/self-hosted-environments#session-lifecycle). Il runner continua a servire le sue sessioni live. Configurare il proxy per passare le risposte da `api.anthropic.com` inalterate. Prima della v2.1.246, il runner leggeva tale risposta come una coda di lavoro vuota, il che potrebbe terminare le sue sessioni live o farla uscire.532* **Il runner registra righe `Poll failed` contenenti `rejecting the malformed poll response`**: il runner ha ricevuto una risposta di work-poll il cui corpo non è il JSON previsto dalla coda, il più delle volte perché qualcosa tra il runner e `api.anthropic.com`, come un proxy intercettante o un portale captive, ha risposto con la sua stessa pagina. Il runner rifiuta la risposta, la conta sotto il tipo `transport` della [metrica](/docs/it/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_poll_errors_total`, e riprova secondo la pianificazione di poll fallito descritta in [Session lifecycle](/docs/it/self-hosted-environments#session-lifecycle). Il runner continua a servire le sue sessioni live. Configurare il proxy per passare le risposte da `api.anthropic.com` inalterate. Prima della v2.1.246, il runner leggeva tale risposta come una coda di lavoro vuota, il che potrebbe terminare le sue sessioni live o farla uscire.

533* **Il ramo di una sessione non esiste più sul remoto**: per un'origine git che la sessione legge solo, il runner salta quella origine e continua con le rimanenti. Per l'origine a cui la sessione spinge i risultati, un ramo eliminato, tipicamente perché è stato unito e auto-eliminato, fa fallire la sessione con un errore che nomina il repository e il ramo e chiede di ripristinare il ramo e riprovare. Il runner fa fallire la sessione con lo stesso errore quando saltare lascerebbe senza alcun repository. Prima della v2.1.228, tale sessione iniziava in una directory vuota.533* **Il ramo di una sessione non esiste più sul remoto**: per un'origine git che la sessione legge solo, il runner salta quella origine e continua con le rimanenti. Per l'origine a cui la sessione spinge i risultati, un ramo eliminato, tipicamente perché è stato unito e auto-eliminato, fa fallire la sessione con un errore che nomina il repository e il ramo e chiede di ripristinare il ramo e riprovare. Il runner fa fallire la sessione con lo stesso errore quando saltare lascerebbe senza alcun repository. Prima della v2.1.228, tale sessione iniziava in una directory vuota.

534* **Una sessione inizia senza uno dei suoi repository**: su un runner senza un [hook `checkout`](/docs/it/self-hosted-environments-configuration#checkout), l'host git può rifiutare il controllo di accesso del runner per un repository che la sessione legge solo. Il runner quindi salta quel repository, registra una riga `[runner:warn] could not access context source` che nomina il rifiuto, e avvia la sessione su quelli rimanenti.

535 

536 Il runner salta solo un rifiuto chiaro: l'host risponde che il repository non è stato trovato, git non trova credenziali per l'host, o l'autenticazione fallisce. Un errore di rete, un timeout, o un HTTP `403` comunque fa fallire l'avvio della sessione, così come un rifiuto per un repository a cui la sessione spinge i risultati. Il runner comunque fa fallire una sessione che saltare lascerebbe senza alcun repository. Con [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), il runner salta solo un repository che il git proxy stesso nega.

537 

538 Il controllo di accesso viene eseguito di nuovo ogni volta che la sessione inizia su un runner, quindi una volta che l'identità git del runner ha accesso in lettura, il prossimo avvio clona il repository. Prima della v2.1.274, ognuno di questi rifiuti faceva fallire l'avvio della sessione.

534* **Le sessioni impiegano minuti per avviarsi**: il clone iniziale di solito domina. Osservare la [metrica](/docs/it/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_session_init_duration_seconds` per confermare e ridurre il clone con un [pre-warmed checkout](#reuse-a-pre-warmed-checkout) o un `CLAUDE_RUNNER_FETCH_DEPTH` più piccolo.539* **Le sessioni impiegano minuti per avviarsi**: il clone iniziale di solito domina. Osservare la [metrica](/docs/it/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_session_init_duration_seconds` per confermare e ridurre il clone con un [pre-warmed checkout](#reuse-a-pre-warmed-checkout) o un `CLAUDE_RUNNER_FETCH_DEPTH` più piccolo.

540* **I turni falliscono con un 401**: ogni sessione autentica le chiamate del modello con il token di breve durata [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/it/self-hosted-environments-configuration#wrapper-scripts) che il runner recupera da Anthropic e ruota sullo stdin della sessione. Quando un turno termina con un 401 o 403 dall'API del modello, il runner recupera un token fresco e lo passa alla sessione. Il turno fallito non viene riprovato.

541 

542 Quando un recupero fallisce, il runner registra una riga `inference_token refresh failed` che dice quando riproverà, e continua a riprovare finché la sessione è in esecuzione.

543 

544 Se ogni chiamata inizia a fallire circa 30 minuti in una sessione, uno script wrapper ha probabilmente reciso lo stdin della sessione, quindi le rotazioni dei token non possono raggiungerlo; vedere [Keep stdin and file descriptor 3 attached](/docs/it/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached).

545 

546 Prima della v2.1.274, il runner smetteva di riprovare un recupero fallito dopo alcuni tentativi e attendeva il prossimo programmato. Un turno fallito non ha attivato un recupero, quindi ogni turno falliva con un 401 fino al prossimo recupero programmato.

535* **Il pod viene terminato durante lo scarico**: aumentare `terminationGracePeriodSeconds` ad almeno il valore che il runner registra all'avvio. Vedere [Shutdown timing](#shutdown-timing).547* **Il pod viene terminato durante lo scarico**: aumentare `terminationGracePeriodSeconds` ad almeno il valore che il runner registra all'avvio. Vedere [Shutdown timing](#shutdown-timing).

536 548 

537Una volta inizializzata la registrazione, il runner scrive il suo log del ciclo di vita, incluse le righe `[runner:fatal]`, su stdout e l'output di debug su stderr, il tutto come righe di testo semplice piuttosto che JSON. Gli errori di avvio descritti nelle voci di troubleshooting sopra stampano su stderr prima di quel punto. Acquisire entrambi i flussi con `--log-file`, che consente anche a `self-hosted-runner doctor` di seguirli, o con la raccolta di log della piattaforma.549Una volta inizializzata la registrazione, il runner scrive il suo log del ciclo di vita, incluse le righe `[runner:fatal]`, su stdout e l'output di debug su stderr, il tutto come righe di testo semplice piuttosto che JSON. Gli errori di avvio descritti nelle voci di troubleshooting sopra stampano su stderr prima di quel punto. Acquisire entrambi i flussi con `--log-file`, che consente anche a `self-hosted-runner doctor` di seguirli, o con la raccolta di log della piattaforma.

Details

103| `SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS` | `30000` | Quanto tempo il runner considera una sessione occupata dopo che un compito in background finisce mentre il turno di follow-up che legge il risultato non è ancora iniziato. Le righe [`--drain-wait-sec` e `--release-idle-session-min`](#runner-cli-flags) descrivono dove si applica la tenuta su drenaggio e rilascio inattivo, e [Runner lifecycle](/docs/it/self-hosted-environments#runner-lifecycle) descrive dove si applica al ritiro `--retire-at`. `0` o un valore inutilizzabile ricade al valore predefinito, quindi la tenuta non può essere disattivata. Richiede Claude Code v2.1.228 o successivo. |103| `SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS` | `30000` | Quanto tempo il runner considera una sessione occupata dopo che un compito in background finisce mentre il turno di follow-up che legge il risultato non è ancora iniziato. Le righe [`--drain-wait-sec` e `--release-idle-session-min`](#runner-cli-flags) descrivono dove si applica la tenuta su drenaggio e rilascio inattivo, e [Runner lifecycle](/docs/it/self-hosted-environments#runner-lifecycle) descrive dove si applica al ritiro `--retire-at`. `0` o un valore inutilizzabile ricade al valore predefinito, quindi la tenuta non può essere disattivata. Richiede Claude Code v2.1.228 o successivo. |

104| `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` | `~/.claude` | Directory acquisita nello snapshot di avvio del runner e seminata nella `CLAUDE_CONFIG_DIR` di ogni sessione; le modifiche su disco si applicano dopo un riavvio del runner. L'impostazione della variabile sposta anche dove il runner legge `.claude.json` per il [seeding MCP](/docs/it/self-hosted-environments-configuration#mcp-servers), quindi impostarla, incluso al suo valore predefinito, trasferisce quella ricerca; punta a una directory vuota per disabilitare completamente il seeding. |104| `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` | `~/.claude` | Directory acquisita nello snapshot di avvio del runner e seminata nella `CLAUDE_CONFIG_DIR` di ogni sessione; le modifiche su disco si applicano dopo un riavvio del runner. L'impostazione della variabile sposta anche dove il runner legge `.claude.json` per il [seeding MCP](/docs/it/self-hosted-environments-configuration#mcp-servers), quindi impostarla, incluso al suo valore predefinito, trasferisce quella ricerca; punta a una directory vuota per disabilitare completamente il seeding. |

105| `SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS` | `900000` | Quanto tempo il runner attende dopo che una sessione raggiunge il suo limite `--kill-session-after-min`, affinché un turno in esecuzione finisca o il rilascio si completi, prima di terminare la sessione |105| `SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS` | `900000` | Quanto tempo il runner attende dopo che una sessione raggiunge il suo limite `--kill-session-after-min`, affinché un turno in esecuzione finisca o il rilascio si completi, prima di terminare la sessione |

106| `SELF_HOSTED_RUNNER_POST_TURN_SETTLE_MS` | `7000` | Limite massimo su quanto tempo il runner conta una sessione come occupata per il drenaggio `--drain-wait-sec` dopo che un turno finisce, mentre il processo della sessione segnala la fine del turno ad Anthropic. `0` o un valore inutilizzabile ricade al valore predefinito, quindi la tenuta non può essere disattivata. Richiede Claude Code v2.1.275 o successivo. |

106| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | Quanto tempo il runner attende che il sistema operativo consegni `SIGKILL` a un figlio bloccato in I/O non interrompibile prima di uscire lui stesso. Limitato inferiormente a `--post-session-hook-timeout-sec` più 15 secondi, e 30 in più quando `--push-outcome-on-release` è impostato, quindi il minimo effettivo è 75 secondi ai valori predefiniti. |107| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | Quanto tempo il runner attende che il sistema operativo consegni `SIGKILL` a un figlio bloccato in I/O non interrompibile prima di uscire lui stesso. Limitato inferiormente a `--post-session-hook-timeout-sec` più 15 secondi, e 30 in più quando `--push-outcome-on-release` è impostato, quindi il minimo effettivo è 75 secondi ai valori predefiniti. |

107| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | Profondità di fetch git per cloni freschi. Imposta un numero intero positivo, o `full` o `0` per un fetch completo. I repository già presenti nello spazio di lavoro mantengono la loro profondità esistente. |108| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | Profondità di fetch git per cloni freschi. Imposta un numero intero positivo, o `full` o `0` per un fetch completo. I repository già presenti nello spazio di lavoro mantengono la loro profondità esistente. |

108| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | unset | Quando `1`, salta il controllo della presenza `.git` dopo l'esecuzione di un hook `checkout`. Imposta questo quando il tuo hook materializza una fonte non-git. |109| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | unset | Quando `1`, salta il controllo della presenza `.git` dopo l'esecuzione di un hook `checkout`. Imposta questo quando il tuo hook materializza una fonte non-git. |

slack.md +3 −1

Details

231 231 

232Questa voce si applica agli spazi di lavoro che utilizzano [Claude Tag](https://claude.com/docs/claude-tag/overview), dove Claude lavora nei canali come identità condivisa della tua organizzazione, non come account di nessun membro. Se hai creato l'ambiente cloud del canale su [claude.ai/code](https://claude.ai/code), appartiene al tuo account personale e Claude non può avviare sessioni di canale in un ambiente personale. Claude Code interrompe immediatamente la sessione e riprovare non aiuta.232Questa voce si applica agli spazi di lavoro che utilizzano [Claude Tag](https://claude.com/docs/claude-tag/overview), dove Claude lavora nei canali come identità condivisa della tua organizzazione, non come account di nessun membro. Se hai creato l'ambiente cloud del canale su [claude.ai/code](https://claude.ai/code), appartiene al tuo account personale e Claude non può avviare sessioni di canale in un ambiente personale. Claude Code interrompe immediatamente la sessione e riprovare non aiuta.

233 233 

234Se sei un Owner, ricrea l'ambiente come [organizzazione-ambiente condiviso](/docs/it/cloud-environments#organization-shared-environments) dalla pagina **Cloud environments** in [admin settings](https://claude.ai/admin-settings). Puoi applicarlo in due modi:234Se sei un Owner e l'ambiente è il tuo, [condividilo con l'organizzazione](/docs/it/cloud-environments#organization-shared-environments) dal selettore dell'ambiente. Altrimenti, un Owner lo ricrea come ambiente condiviso dell'organizzazione dalla pagina **Cloud environments** in [admin settings](https://claude.ai/admin-settings).

235 

236Puoi applicarlo in due modi:

235 237 

236* Impostalo come predefinito dell'organizzazione su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).238* Impostalo come predefinito dell'organizzazione su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

237* [Impostalo sul canale](https://claude.com/docs/claude-tag/admins/troubleshooting#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one) nelle impostazioni di amministrazione di Claude Tag.239* [Impostalo sul canale](https://claude.com/docs/claude-tag/admins/troubleshooting#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one) nelle impostazioni di amministrazione di Claude Tag.

Details

196<Steps>196<Steps>

197 <Step title="Apri la vista diff">197 <Step title="Apri la vista diff">

198 Un indicatore diff mostra le righe aggiunte e rimosse durante la sessione, ad esempio `+42 -18`. Selezionalo per aprire la vista diff, con un elenco di file a sinistra e le modifiche a destra.198 Un indicatore diff mostra le righe aggiunte e rimosse durante la sessione, ad esempio `+42 -18`. Selezionalo per aprire la vista diff, con un elenco di file a sinistra e le modifiche a destra.

199 

200 Il diff confronta le modifiche della sessione rispetto al suo ramo base per impostazione predefinita. Per confrontare rispetto a un ramo diverso, seleziona **Confronta con** e scegline uno.

199 </Step>201 </Step>

200 202 

201 <Step title="Lascia commenti inline">203 <Step title="Lascia commenti inline">