Skip to content

Claude fails to load on node v25  #41011

Description

@warriorGod

Summary

After being shown the claude setup dialog and confirming it, Claude never started working. First stuck on installing, then loading status.

UPDATE: error only with node version 25, node 24 works fine.

Description

I have not installed claude on the system before trying to set it up in Zed.
The install process might gave not completed, but I did give it a good few minutes.
Now when I open Zed, the Claude thread is stuck on Loading... indefinetly.

I have also now installed claud in the terminal, but it did not change anything.

Steps to reproduce:

  1. Get shown Claude popup (not 100% what I clicked to get it shown)
  2. Proceed
  3. Stuck on installing
  4. Stuck on loading after restart of Zed.

Expected Behavior: Claude working
Actual Behavior: Agent panel non responsive.

click to expand
# command that seems to cause the error in Zed.log
node "/Users/gregor/Library/Application Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js"
2025-10-23T13:28:44+01:00 WARN  [agent_servers::acp] agent stderr: Spawning Claude Code process: /Users/gregor/.proto/tools/node/25.0.0/bin/node /Users/gregor/Library/Application Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js --output-format stream-json --verbose --input-format stream-json --permission-prompt-tool mcp__acpPermission__permission --allowedTools mcp__acp__Read,mcp__acp__BashOutput,mcp__acp__KillShell --disallowedTools Read,Write,Edit,Bash,BashOutput,KillShell --mcp-config {"mcpServers":{"acp":{"type":"sdk","name":"acp"},"acpPermission":{"type":"http","url":"http://127.0.0.1:50460/mcp","headers":{"x-acp-proxy-session-id":"019a110a-ff18-720e-8f25-1869b58ec19f"}}}} --setting-sources user,project,local --permission-mode bypassPermissions --include-partial-messages

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr: file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:634

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr: `),Q.code=Z.error.code,Q.errors=Z.error.errors;else Q.message=Z.error.message,Q.code=Z.error.code;else if(B&&B.status>=400)Q.message=Z,Q.status=B.status;return Q}}rm2.DefaultTransporter=MI1;MI1.USER_AGENT=`${sm2}/${QJ6.version}`});var g21=U((uq0,em2)=>{/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */var Cb1=H1("buffer"),TT=Cb1.Buffer;function tm2(A,B){for(var Q in A)B[Q]=A[Q]}if(TT.from&&TT.alloc&&TT.allocUnsafe&&TT.allocUnsafeSlow)em2.exports=Cb1;else tm2(Cb1,uq0),uq0.Buffer=Pp;function Pp(A,B,Q){return TT(A,B,Q)}Pp.prototype=Object.create(TT.prototype);tm2(TT,Pp);Pp.from=function(A,B,Q){if(typeof A==="number")throw TypeError("Argument must not be a number");return TT(A,B,Q)};Pp.alloc=function(A,B,Q){if(typeof A!=="number")throw TypeError("Argument must be a number");var Z=TT(A);if(B!==void 0)if(typeof Q==="string")Z.fill(B,Q);else Z.fill(B);else Z.fill(0);return Z};Pp.allocUnsafe=function(A){if(typeof A!=="number")throw TypeError("Argument must be a number");return TT(A)};Pp.allocUnsafeSlow=function(A){if(typeof A!=="number")throw TypeError("Argument must be a number");return Cb1.SlowBuffer(A)}});var Bd2=U(($P3,Ad2)=>{function mq0(A){var B=(A/8|0)+(A%8===0?0:1);return B}var ZJ6={ES256:mq0(256),ES384:mq0(384),ES512:mq0(521)};function GJ6(A){var B=ZJ6[A];if(B)return B;throw Error('Unknown algorithm "'+A+'"')}Ad2.exports=GJ6});var dq0=U((qP3,Jd2)=>{var Ub1=g21().Buffer,Zd2=Bd2(),$b1=128,Gd2=0,YJ6=32,WJ6=16,JJ6=2,Yd2=WJ6|YJ6|Gd2<<6,qb1=JJ6|Gd2<<6;function IJ6(A){return A.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function Wd2(A){if(Ub1.isBuffer(A))return A;else if(typeof A==="string")return Ub1.from(A,"base64");throw TypeError("ECDSA signature must be a Base64 string or a Buffer")}function XJ6(A,B){A=Wd2(A);var Q=Zd2(B),Z=Q+1,G=A.length,Y=0;if(A[Y++]!==Yd2)throw Error('Could not find expected "seq"');var W=A[Y++];if(W===($b1|1))W=A[Y++];if(G-Y<W)throw Error('"seq" specified length of "'+W+'", only "'+(G-Y)+'" remaining');if(A[Y++]!==qb1)throw Error('Could not find expected "int" for "r"');var J=A[Y++];if(G-Y-2<J)throw Error('"r" specified length of "'+J+'", only "'+(G-Y-2)+'" available');if(Z<J)throw Error('"r" specified length of "'+J+'", max of "'+Z+'" is acceptable');var I=Y;if(Y+=J,A[Y++]!==qb1)throw Error('Could not find expected "int" for "s"');var X=A[Y++];if(G-Y!==X)throw Error('"s" specified length of "'+X+'", expected "'+(G-Y)+'"');if(Z<X)throw Error('"s" specified length of "'+X+'", max of "'+Z+'" is acceptable');var F=Y;if(Y+=X,Y!==G)throw Error('Expected to consume entire buffer, but "'+(G-Y)+'" bytes remain');var V=Q-J,K=Q-X,D=Ub1.allocUnsafe(V+J+K+X);for(Y=0;Y<V;++Y)D[Y]=0;A.copy(D,Y,I+Math.max(-V,0),I+J),Y=Q;for(var H=Y;Y<H+K;++Y)D[Y]=0;return A.copy(D,Y,F+Math.max(-K,0),F+X),D=D.toString("base64"),D=IJ6(D),D}function Qd2(A,B,Q){var Z=0;while(B+Z<Q&&A[B+Z]===0)++Z;var G=A[B+Z]>=$b1;if(G)--Z;return Z}function FJ6(A,B){A=Wd2(A);var Q=Zd2(B),Z=A.length;if(Z!==Q*2)throw TypeError('"'+B+'" signatures must be "'+Q*2+'" bytes, saw "'+Z+'"');var G=Qd2(A,0,Q),Y=Qd2(A,Q,A.length),W=Q-G,J=Q-Y,I=2+W+1+1+J,X=I<$b1,F=Ub1.allocUnsafe((X?2:3)+I),V=0;if(F[V++]=Yd2,X)F[V++]=I;else F[V++]=$b1|1,F[V++]=I&255;if(F[V++]=qb1,F[V++]=W,G<0)F[V++]=0,V+=A.copy(F,V,0,Q);else V+=A.copy(F,V,G,Q);if(F[V++]=qb1,F[V++]=J,Y<0)F[V++]=0,A.copy(F,V,Q);else A.copy(F,V,Q+Y);return F}Jd2.exports={derToJose:XJ6,joseToDer:FJ6}});var Ph=U((Th)=>{var SL=Th&&Th.__classPrivateFieldGet||function(A,B,Q,Z){if(Q==="a"&&!Z)throw TypeError("Private accessor was defined without a getter");if(typeof B==="function"?A!==B||!Z:!B.has(A))throw TypeError("Cannot read private member from an object whose class did not declare it");return Q==="m"?Z:Q==="a"?Z.call(A):Z?Z.value:B.get(A)},u21,Vk,cq0,lq0;Object.defineProperty(Th,"__esModule",{value:!0});Th.LRUCache=void 0;Th.snakeToCamel=Id2;Th.originalOrCamelOptions=VJ6;function Id2(A){return A.replace(/([_][^_])/g,(B)=>B.slice(1).toUpperCase())}function VJ6(A){function B(Q){var Z;let G=A||{};return(Z=G[Q])!==null&&Z!==void 0?Z:G[Id2(Q)]}return{get:B}}class Xd2{constructor(A){u21.add(this),Vk.set(this,new Map),this.capacity=A.capacity,this.maxAge=A.maxAge}set(A,B){SL(this,u21,"m",cq0).call(this,A,B),SL(this,u21,"m",lq0).call(this)}get(A){let B=SL(this,Vk,"f").get(A);if(!B)return;return SL(this,u21,"m",cq0).call(this,A,B.value),SL(this,u21,"m",lq0).call(this),B.value}}Th.LRUCache=Xd2;Vk=new WeakMap,u21=new WeakSet,cq0=function(B,Q){SL(this,Vk,"f").delete(B),SL(this,Vk,"f").set(B,{value:Q,lastAccessed:Date.now()})},lq0=function(){let B=this.maxAge?Date.now()-this.maxAge:0,Q=SL(this,Vk,"f").entries().next();while(!Q.done&&(SL(this,Vk,"f").size>this.capacity||Q.value[1].lastAccessed<B))SL(this,Vk,"f").delete(Q.value[0]),Q=SL(this,Vk,"f").entries().next()}});var PT=U((Dd2)=>{Object.defineProperty(Dd2,"__esModule",{value:!0});Dd2.AuthClient=Dd2.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=Dd2.DEFAULT_UNIVERSE=void 0;var KJ6=H1("events"),Fd2=PL(),Vd2=OI1(),DJ6=Ph();Dd2.DEFAULT_UNIVERSE="googleapis.com";Dd2.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS=300000;class Kd2 extends KJ6.EventEmitter{constructor(A={}){var B,Q,Z,G,Y;super();this.credentials={},this.eagerRefreshThresholdMillis=Dd2.DEFAULT_EAGER_REFRESH_THRESHOLD_MILLIS,this.forceRefreshOnFailure=!1,this.universeDomain=Dd2.DEFAULT_UNIVERSE;let W=(0,DJ6.originalOrCamelOptions)(A);if(this.apiKey=A.apiKey,this.projectId=(B=W.get("project_id"))!==null&&B!==void 0?B:null,this.quotaProjectId=W.get("quota_project_id"),this.credentials=(Q=W.get("credentials"))!==null&&Q!==void 0?Q:{},this.universeDomain=(Z=W.get("universe_domain"))!==null&&Z!==void 0?Z:Dd2.DEFAULT_UNIVERSE,this.transporter=(G=A.transporter)!==null&&G!==void 0?G:new Vd2.DefaultTransporter,A.transporterOptions)this.transporter.defaults=A.transporterOptions;if(A.eagerRefreshThresholdMillis)this.eagerRefreshThresholdMillis=A.eagerRefreshThresholdMillis;this.forceRefreshOnFailure=(Y=A.forceRefreshOnFailure)!==null&&Y!==void 0?Y:!1}get gaxios(){if(this.transporter instanceof Fd2.Gaxios)return this.transporter;else if(this.transporter instanceof Vd2.DefaultTransporter)return this.transporter.instance;else if("instance"in this.transporter&&this.transporter.instance instanceof Fd2.Gaxios)return this.transporter.instance;return null}setCredentials(A){this.credentials=A}addSharedMetadataHeaders(A){if(!A["x-goog-user-project"]&&this.quotaProjectId)A["x-goog-user-project"]=this.quotaProjectId;return A}static get RETRY_CONFIG(){return{retry:!0,retryConfig:{httpMethodsToRetry:["GET","PUT","POST","HEAD","OPTIONS","DELETE"]}}}}Dd2.AuthClient=Kd2});var iq0=U((Ud2)=>{Object.defineProperty(Ud2,"__esModule",{value:!0});Ud2.LoginTicket=void 0;class Cd2{constructor(A,B){this.envelope=A,this.payload=B}getEnvelope(){return this.envelope}getPayload(){return this.payload}getUserId(){let A=this.getPayload();if(A&&A.sub)return A.sub;return null}getAttributes(){return{envelope:this.getEnvelope(),payload:this.getPayload()}}}Ud2.LoginTicket=Cd2});var jp=U((Ed2)=>{Object.defineProperty(Ed2,"__esModule",{value:!0});Ed2.OAuth2Client=Ed2.ClientAuthentication=Ed2.CertificateFormat=Ed2.CodeChallengeMethod=void 0;var HJ6=PL(),nq0=H1("querystring"),zJ6=H1("stream"),CJ6=dq0(),aq0=f21(),UJ6=PT(),$J6=iq0(),qd2;(function(A){A.Plain="plain",A.S256="S256"})(qd2||(Ed2.CodeChallengeMethod=qd2={}));var Kk;(function(A){A.PEM="PEM",A.JWK="JWK"})(Kk||(Ed2.CertificateFormat=Kk={}));var RI1;(function(A){A.ClientSecretPost="ClientSecretPost",A.ClientSecretBasic="ClientSecretBasic",A.None="None"})(RI1||(Ed2.ClientAuthentication=RI1={}));class _D extends UJ6.AuthClient{constructor(A,B,Q){let Z=A&&typeof A==="object"?A:{clientId:A,clientSecret:B,redirectUri:Q};super(Z);this.certificateCache={},this.certificateExpiry=null,this.certificateCacheFormat=Kk.PEM,this.refreshTokenPromises=new Map,this._clientId=Z.clientId,this._clientSecret=Z.clientSecret,this.redirectUri=Z.redirectUri,this.endpoints={tokenInfoUrl:"https://oauth2.googleapis.com/tokeninfo",oauth2AuthBaseUrl:"https://accounts.google.com/o/oauth2/v2/auth",oauth2TokenUrl:"https://oauth2.googleapis.com/token",oauth2RevokeUrl:"https://oauth2.googleapis.com/revoke",oauth2FederatedSignonPemCertsUrl:"https://www.googleapis.com/oauth2/v1/certs",oauth2FederatedSignonJwkCertsUrl:"https://www.googleapis.com/oauth2/v3/certs",oauth2IapPublicKeyUrl:"https://www.gstatic.com/iap/verify/public_key",...Z.endpoints},this.clientAuthentication=Z.clientAuthentication||RI1.ClientSecretPost,this.issuers=Z.issuers||["accounts.google.com","https://accounts.google.com",this.universeDomain]}generateAuthUrl(A={}){if(A.code_challenge_method&&!A.code_challenge)throw Error("If a code_challenge_method is provided, code_challenge must be included.");if(A.response_type=A.response_type||"code",A.client_id=A.client_id||this._clientId,A.redirect_uri=A.redirect_uri||this.redirectUri,Array.isArray(A.scope))A.scope=A.scope.join(" ");return this.endpoints.oauth2AuthBaseUrl.toString()+"?"+nq0.stringify(A)}generateCodeVerifier(){throw Error("generateCodeVerifier is removed, please use generateCodeVerifierAsync instead.")}async generateCodeVerifierAsync(){let A=(0,aq0.createCrypto)(),Q=A.randomBytesBase64(96).replace(/\+/g,"~").replace(/=/g,"_").replace(/\//g,"-"),G=(await A.sha256DigestBase64(Q)).split("=")[0].replace(/\+/g,"-").replace(/\//g,"_");return{codeVerifier:Q,codeChallenge:G}}getToken(A,B){let Q=typeof A==="string"?{code:A}:A;if(B)this.getTokenAsync(Q).then((Z)=>B(null,Z.tokens,Z.res),(Z)=>B(Z,null,Z.response));else return this.getTokenAsync(Q)}async getTokenAsync(A){let B=this.endpoints.oauth2TokenUrl.toString(),Q={"Content-Type":"application/x-www-form-urlencoded"},Z={client_id:A.client_id||this._clientId,code_verifier:A.codeVerifier,code:A.code,grant_type:"authorization_code",redirect_uri:A.redirect_uri||this.redirectUri};if(this.clientAuthentication===RI1.ClientSecretBasic){let W=Buffer.from(`${this._clientId}:${this._clientSecret}`);Q.Authorization=`Basic ${W.toString("base64")}`}if(this.clientAuthentication===RI1.ClientSecretPost)Z.client_secret=this._clientSecret;let G=await this.transporter.request({..._D.RETRY_CONFIG,method:"POST",url:B,data:nq0.stringify(Z),headers:Q}),Y=G.data;if(G.data&&G.data.expires_in)Y.expiry_date=new Date().getTime()+G.data.expires_in*1000,delete Y.expires_in;return this.emit("tokens",Y),{tokens:Y,res:G}}async refreshToken(A){if(!A)return this.refreshTokenNoCache(A);if(this.refreshTokenPromises.has(A))return this.refreshTokenPromises.get(A);let B=this.refreshTokenNoCache(A).then((Q)=>{return this.refreshTokenPromises.delete(A),Q},(Q)=>{throw this.refreshTokenPromises.delete(A),Q});return this.refreshTokenPromises.set(A,B),B}async refreshTokenNoCache(A){var B;if(!A)throw Error("No refresh token is set.");let Q=this.endpoints.oauth2TokenUrl.toString(),Z={refresh_token:A,client_id:this._clientId,client_secret:this._clientSecret,grant_type:"refresh_token"},G;try{G=await this.transporter.request({..._D.RETRY_CONFIG,method:"POST",url:Q,data:nq0.stringify(Z),headers:{"Content-Type":"application/x-www-form-urlencoded"}})}catch(W){if(W instanceof HJ6.GaxiosError&&W.message==="invalid_grant"&&((B=W.response)===null||B===void 0?void 0:B.data)&&/ReAuth/i.test(W.response.data.error_description))W.message=JSON.stringify(W.response.data);throw W}let Y=G.data;if(G.data&&G.data.expires_in)Y.expiry_date=new Date().getTime()+G.data.expires_in*1000,delete Y.expires_in;return this.emit("tokens",Y),{tokens:Y,res:G}}refreshAccessToken(A){if(A)this.refreshAccessTokenAsync().then((B)=>A(null,B.credentials,B.res),A);else return this.refreshAccessTokenAsync()}async refreshAccessTokenAsync(){let A=await this.refreshToken(this.credentials.refresh_token),B=A.tokens;return B.refresh_token=this.credentials.refresh_token,this.credentials=B,{credentials:this.credentials,res:A.res}}getAccessToken(A){if(A)this.getAccessTokenAsync().then((B)=>A(null,B.token,B.res),A);else return this.getAccessTokenAsync()}async getAccessTokenAsync(){if(!this.credentials.access_token||this.isTokenExpiring()){if(!this.credentials.refresh_token)if(this.refreshHandler){let Q=await this.processAndValidateRefreshHandler();if(Q===null||Q===void 0?void 0:Q.access_token)return this.setCredentials(Q),{token:this.credentials.access_token}}else throw Error("No refresh token or refresh handler callback is set.");let B=await this.refreshAccessTokenAsync();if(!B.credentials||B.credentials&&!B.credentials.access_token)throw Error("Could not refresh access token.");return{token:B.credentials.access_token,res:B.res}}else return{token:this.credentials.access_token}}async getRequestHeaders(A){return(await this.getRequestMetadataAsync(A)).headers}async getRequestMetadataAsync(A){let B=this.credentials;if(!B.access_token&&!B.refresh_token&&!this.apiKey&&!this.refreshHandler)throw Error("No access, refresh token, API key or refresh handler callback is set.");if(B.access_token&&!this.isTokenExpiring()){B.token_type=B.token_type||"Bearer";let W={Authorization:B.token_type+" "+B.access_token};return{headers:this.addSharedMetadataHeaders(W)}}if(this.refreshHandler){let W=await this.processAndValidateRefreshHandler();if(W===null||W===void 0?void 0:W.access_token){this.setCredentials(W);let J={Authorization:"Bearer "+this.credentials.access_token};return{headers:this.addSharedMetadataHeaders(J)}}}if(this.apiKey)return{headers:{"X-Goog-Api-Key":this.apiKey}};let Q=null,Z=null;try{Q=await this.refreshToken(B.refresh_token),Z=Q.tokens}catch(W){let J=W;if(J.response&&(J.response.status===403||J.response.status===404))J.message=`Could not refresh access token: ${J.message}`;throw J}let G=this.credentials;G.token_type=G.token_type||"Bearer",Z.refresh_token=G.refresh_token,this.credentials=Z;let Y={Authorization:G.token_type+" "+Z.access_token};return{headers:this.addSharedMetadataHeaders(Y),res:Q.res}}static getRevokeTokenUrl(A){return new _D().getRevokeTokenURL(A).toString()}getRevokeTokenURL(A){let B=new URL(this.endpoints.oauth2RevokeUrl);return B.searchParams.append("token",A),B}revokeToken(A,B){let Q={..._D.RETRY_CONFIG,url:this.getRevokeTokenURL(A).toString(),method:"POST"};if(B)this.transporter.request(Q).then((Z)=>B(null,Z),B);else return this.transporter.request(Q)}revokeCredentials(A){if(A)this.revokeCredentialsAsync().then((B)=>A(null,B),A);else return this.revokeCredentialsAsync()}async revokeCredentialsAsync(){let A=this.credentials.access_token;if(this.credentials={},A)return this.revokeToken(A);else throw Error("No access token to revoke.")}request(A,B){if(B)this.requestAsync(A).then((Q)=>B(null,Q),(Q)=>{return B(Q,Q.response)});else return this.requestAsync(A)}async requestAsync(A,B=!1){let Q;try{let Z=await this.getRequestMetadataAsync(A.url);if(A.headers=A.headers||{},Z.headers&&Z.headers["x-goog-user-project"])A.headers["x-goog-user-project"]=Z.headers["x-goog-user-project"];if(Z.headers&&Z.headers.Authorization)A.headers.Authorization=Z.headers.Authorization;if(this.apiKey)A.headers["X-Goog-Api-Key"]=this.apiKey;Q=await this.transporter.request(A)}catch(Z){let G=Z.response;if(G){let Y=G.status,W=this.credentials&&this.credentials.access_token&&this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure),J=this.credentials&&this.credentials.access_token&&!this.credentials.refresh_token&&(!this.credentials.expiry_date||this.forceRefreshOnFailure)&&this.refreshHandler,I=G.config.data instanceof zJ6.Readable,X=Y===401||Y===403;if(!B&&X&&!I&&W)return await this.refreshAccessTokenAsync(),this.requestAsync(A,!0);else if(!B&&X&&!I&&J){let F=await this.processAndValidateRefreshHandler();if(F===null||F===void 0?void 0:F.access_token)this.setCredentials(F);return this.requestAsync(A,!0)}}throw Z}return Q}verifyIdToken(A,B){if(B&&typeof B!=="function")throw Error("This method accepts an options object as the first parameter, which includes the idToken, audience, and maxExpiry.");if(B)this.verifyIdTokenAsync(A).then((Q)=>B(null,Q),B);else return this.verifyIdTokenAsync(A)}async verifyIdTokenAsync(A){if(!A.idToken)throw Error("The verifyIdToken method requires an ID Token");let B=await this.getFederatedSignonCertsAsync();return await this.verifySignedJwtWithCertsAsync(A.idToken,B.certs,A.audience,this.issuers,A.maxExpiry)}async getTokenInfo(A){let{data:B}=await this.transporter.request({..._D.RETRY_CONFIG,method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`Bearer ${A}`},url:this.endpoints.tokenInfoUrl.toString()}),Q=Object.assign({expiry_date:new Date().getTime()+B.expires_in*1000,scopes:B.scope.split(" ")},B);return delete Q.expires_in,delete Q.scope,Q}getFederatedSignonCerts(A){if(A)this.getFederatedSignonCertsAsync().then((B)=>A(null,B.certs,B.res),A);else return this.getFederatedSignonCertsAsync()}async getFederatedSignonCertsAsync(){let A=new Date().getTime(),B=(0,aq0.hasBrowserCrypto)()?Kk.JWK:Kk.PEM;if(this.certificateExpiry&&A<this.certificateExpiry.getTime()&&this.certificateCacheFormat===B)return{certs:this.certificateCache,format:B};let Q,Z;switch(B){case Kk.PEM:Z=this.endpoints.oauth2FederatedSignonPemCertsUrl.toString();break;case Kk.JWK:Z=this.endpoints.oauth2FederatedSignonJwkCertsUrl.toString();break;default:throw Error(`Unsupported certificate format ${B}`)}try{Q=await this.transporter.request({..._D.RETRY_CONFIG,url:Z})}catch(I){if(I instanceof Error)I.message=`Failed to retrieve verification certificates: ${I.message}`;throw I}let G=Q?Q.headers["cache-control"]:void 0,Y=-1;if(G){let X=new RegExp("max-age=([0-9]*)").exec(G);if(X&&X.length===2)Y=Number(X[1])*1000}let W={};switch(B){case Kk.PEM:W=Q.data;break;case Kk.JWK:for(let I of Q.data.keys)W[I.kid]=I;break;default:throw Error(`Unsupported certificate format ${B}`)}let J=new Date;return this.certificateExpiry=Y===-1?null:new Date(J.getTime()+Y),this.certificateCache=W,this.certificateCacheFormat=B,{certs:W,format:B,res:Q}}getIapPublicKeys(A){if(A)this.getIapPublicKeysAsync().then((B)=>A(null,B.pubkeys,B.res),A);else return this.getIapPublicKeysAsync()}async getIapPublicKeysAsync(){let A,B=this.endpoints.oauth2IapPublicKeyUrl.toString();try{A=await this.transporter.request({..._D.RETRY_CONFIG,url:B})}catch(Q){if(Q instanceof Error)Q.message=`Failed to retrieve verification certificates: ${Q.message}`;throw Q}return{pubkeys:A.data,res:A}}verifySignedJwtWithCerts(){throw Error("verifySignedJwtWithCerts is removed, please use verifySignedJwtWithCertsAsync instead.")}async verifySignedJwtWithCertsAsync(A,B,Q,Z,G){let Y=(0,aq0.createCrypto)();if(!G)G=_D.DEFAULT_MAX_TOKEN_LIFETIME_SECS_;let W=A.split(".");if(W.length!==3)throw Error("Wrong number of segments in token: "+A);let J=W[0]+"."+W[1],I=W[2],X,F;try{X=JSON.parse(Y.decodeBase64StringUtf8(W[0]))}catch(N){if(N instanceof Error)N.message=`Can't parse token envelope: ${W[0]}': ${N.message}`;throw N}if(!X)throw Error("Can't parse token envelope: "+W[0]);try{F=JSON.parse(Y.decodeBase64StringUtf8(W[1]))}catch(N){if(N instanceof Error)N.message=`Can't parse token payload '${W[0]}`;throw N}if(!F)throw Error("Can't parse token payload: "+W[1]);if(!Object.prototype.hasOwnProperty.call(B,X.kid))throw Error("No pem found for envelope: "+JSON.stringify(X));let V=B[X.kid];if(X.alg==="ES256")I=CJ6.joseToDer(I,"ES256").toString("base64");if(!await Y.verify(V,J,I))throw Error("Invalid token signature: "+A);if(!F.iat)throw Error("No issue time in token: "+JSON.stringify(F));if(!F.exp)throw Error("No expiration time in token: "+JSON.stringify(F));let D=Number(F.iat);if(isNaN(D))throw Error("iat field using invalid format");let H=Number(F.exp);if(isNaN(H))throw Error("exp field using invalid format");let z=new Date().getTime()/1000;if(H>=z+G)throw Error("Expiration time too far in future: "+JSON.stringify(F));let C=D-_D.CLOCK_SKEW_SECS_,q=H+_D.CLOCK_SKEW_SECS_;if(z<C)throw Error("Token used too early, "+z+" < "+C+": "+JSON.stringify(F));if(z>q)throw Error("Token used too late, "+z+" > "+q+": "+JSON.stringify(F));if(Z&&Z.indexOf(F.iss)<0)throw Error("Invalid issuer, expected one of ["+Z+"], but got "+F.iss);if(typeof Q<"u"&&Q!==null){let N=F.aud,L=!1;if(Q.constructor===Array)L=Q.indexOf(N)>-1;else L=N===Q;if(!L)throw Error("Wrong recipient, payload audience != requiredAudience")}return new $J6.LoginTicket(X,F)}async processAndValidateRefreshHandler(){if(this.refreshHandler){let A=await this.refreshHandler();if(!A.access_token)throw Error("No access token is returned by the refreshHandler callback.");return A}return}isTokenExpiring(){let A=this.credentials.expiry_date;return A?A<=new Date().getTime()+this.eagerRefreshThresholdMillis:!1}}Ed2.OAuth2Client=_D;_D.GOOGLE_TOKEN_INFO_URL="https://oauth2.googleapis.com/tokeninfo";_D.CLOCK_SKEW_SECS_=300;_D.DEFAULT_MAX_TOKEN_LIFETIME_SECS_=86400});var sq0=U((Md2)=>{Object.defineProperty(Md2,"__esModule",{value:!0});Md2.Compute=void 0;var NJ6=PL(),Nd2=LI1(),LJ6=jp();class Ld2 extends LJ6.OAuth2Client{constructor(A={}){super(A);this.credentials={expiry_date:1,refresh_token:"compute-placeholder"},this.serviceAccountEmail=A.serviceAccountEmail||"default",this.scopes=Array.isArray(A.scopes)?A.scopes:A.scopes?[A.scopes]:[]}async refreshTokenNoCache(A){let B=`service-accounts/${this.serviceAccountEmail}/token`,Q;try{let G={property:B};if(this.scopes.length>0)G.params={scopes:this.scopes.join(",")};Q=await Nd2.instance(G)}catch(G){if(G instanceof NJ6.GaxiosError)G.message=`Could not refresh access token: ${G.message}`,this.wrapError(G);throw G}let Z=Q;if(Q&&Q.expires_in)Z.expiry_date=new Date().getTime()+Q.expires_in*1000,delete Z.expires_in;return this.emit("tokens",Z),{tokens:Z,res:null}}async fetchIdToken(A){let B=`service-accounts/${this.serviceAccountEmail}/identity?format=full&audience=${A}`,Q;try{let Z={property:B};Q=await Nd2.instance(Z)}catch(Z){if(Z instanceof Error)Z.message=`Could not fetch ID token: ${Z.message}`;throw Z}return Q}wrapError(A){let B=A.response;if(B&&B.status){if(A.status=B.status,B.status===403)A.message="A Forbidden error was returned while attempting to retrieve an access token for the Compute Engine built-in service account. This may be because the Compute Engine instance does not have the correct permission scopes specified: "+A.message;else if(B.status===404)A.message="A Not Found error was returned while attempting to retrieve an accesstoken for the Compute Engine built-in service account. This may be because the Compute Engine instance does not have any permission scopes specified: "+A.message}}}Md2.Compute=Ld2});var rq0=U((Td2)=>{Object.defineProperty(Td2,"__esModule",{value:!0});Td2.IdTokenClient=void 0;var MJ6=jp();class Rd2 extends MJ6.OAuth2Client{constructor(A){super(A);this.targetAudience=A.targetAudience,this.idTokenProvider=A.idTokenProvider}async getRequestMetadataAsync(A){if(!this.credentials.id_token||!this.credentials.expiry_date||this.isTokenExpiring()){let Q=await this.idTokenProvider.fetchIdToken(this.targetAudience);this.credentials={id_token:Q,expiry_date:this.getIdTokenExpiryDate(Q)}}return{headers:{Authorization:"Bearer "+this.credentials.id_token}}}getIdTokenExpiryDate(A){let B=A.split(".")[1];if(B)return JSON.parse(Buffer.from(B,"base64").toString("ascii")).exp*1000}}Td2.IdTokenClient=Rd2});var oq0=U((Sd2)=>{Object.defineProperty(Sd2,"__esModule",{value:!0});Sd2.GCPEnv=void 0;Sd2.clear=OJ6;Sd2.getEnv=RJ6;var jd2=LI1(),Dk;(function(A){A.APP_ENGINE="APP_ENGINE",A.KUBERNETES_ENGINE="KUBERNETES_ENGINE",A.CLOUD_FUNCTIONS="CLOUD_FUNCTIONS",A.COMPUTE_ENGINE="COMPUTE_ENGINE",A.CLOUD_RUN="CLOUD_RUN",A.NONE="NONE"})(Dk||(Sd2.GCPEnv=Dk={}));var TI1;function OJ6(){TI1=void 0}async function RJ6(){if(TI1)return TI1;return TI1=TJ6(),TI1}async function TJ6(){let A=Dk.NONE;if(PJ6())A=Dk.APP_ENGINE;else if(jJ6())A=Dk.CLOUD_FUNCTIONS;else if(await kJ6())if(await yJ6())A=Dk.KUBERNETES_ENGINE;else if(SJ6())A=Dk.CLOUD_RUN;else A=Dk.COMPUTE_ENGINE;else A=Dk.NONE;return A}function PJ6(){return!!(process.env.GAE_SERVICE||process.env.GAE_MODULE_NAME)}function jJ6(){return!!(process.env.FUNCTION_NAME||process.env.FUNCTION_TARGET)}function SJ6(){return!!process.env.K_CONFIGURATION}async function yJ6(){try{return await jd2.instance("attributes/cluster-name"),!0}catch(A){return!1}}async function kJ6(){return jd2.isAvailable()}});var tq0=U((TP3,kd2)=>{var Eb1=g21().Buffer,vJ6=H1("stream"),bJ6=H1("util");function wb1(A){if(this.buffer=null,this.writable=!0,this.readable=!0,!A)return this.buffer=Eb1.alloc(0),this;if(typeof A.pipe==="function")return this.buffer=Eb1.alloc(0),A.pipe(this),this;if(A.length||typeof A==="object")return this.buffer=A,this.writable=!1,process.nextTick(function(){this.emit("end",A),this.readable=!1,this.emit("close")}.bind(this)),this;throw TypeError("Unexpected data type ("+typeof A+")")}bJ6.inherits(wb1,vJ6);wb1.prototype.write=function(B){this.buffer=Eb1.concat([this.buffer,Eb1.from(B)]),this.emit("data",B)};wb1.prototype.end=function(B){if(B)this.write(B);this.emit("end",B),this.emit("close"),this.writable=!1,this.readable=!1};kd2.exports=wb1});var xd2=U((PP3,_d2)=>{var PI1=H1("buffer").Buffer,eq0=H1("buffer").SlowBuffer;_d2.exports=Nb1;function Nb1(A,B){if(!PI1.isBuffer(A)||!PI1.isBuffer(B))return!1;if(A.length!==B.length)return!1;var Q=0;for(var Z=0;Z<A.length;Z++)Q|=A[Z]^B[Z];return Q===0}Nb1.install=function(){PI1.prototype.equal=eq0.prototype.equal=function(B){return Nb1(this,B)}};var fJ6=PI1.prototype.equal,hJ6=eq0.prototype.equal;Nb1.restore=function(){PI1.prototype.equal=fJ6,eq0.prototype.equal=hJ6}});var QE0=U((jP3,cd2)=>{var gJ6=xd2(),d21=g21().Buffer,jT=H1("crypto"),bd2=dq0(),vd2=H1("util"),uJ6=`"%s" is not a valid algorithm.

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr: 

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr: TypeError: Cannot read properties of undefined (reading 'prototype')

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:634:25327

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:8:402

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:634:25447

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:8:402

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:636:3204

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:8:402

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:636:6226

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:8:402

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:636:7408

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr:     at file:///Users/gregor/Library/Application%20Support/Zed/external_agents/claude-code-acp/0.6.7/node_modules/@anthropic-ai/claude-agent-sdk/cli.js:8:402

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr: 

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr: Node.js v25.0.0

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr: 

2025-10-23T13:28:46+01:00 WARN  [agent_servers::acp] agent stderr: Claude Code process exited with code 1

Zed Version and System Specs

Zed: v0.209.5 (Zed)
OS: macOS 15.7.1
Memory: 16 GiB
Architecture: x86_64

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:ai/acpFeedback for Zed's Agent Client Protocol

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions