[BUG] Crashed EPERM on Bash(ls -la /FULL_PATH_TO_PROJECT/*.{xml,out,html} 2>/dev/null | head -20)
Resolved 💬 4 comments Opened Oct 12, 2025 by paepae Closed Jan 9, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
I asked Claude Code to analyze current GitLab CI pipeline implementation on handling multiple test reports.
After executed this, it crashed.
Bash(ls -la /FULL_PATH_TO_PROJECT/*.{xml,out,html} 2>/dev/null | head -20)
What Should Happen?
Did not crash.
Error Messages/Logs
187 | `).slice(1).map((B)=>{let Q=f7Z.parseLine(B);if(!Q)return FV.default.createElement(S,{key:B},FV.default.createElement(D,{dimColor:!0},"- "),FV.default.createElement(D,{dimColor:!0,bold:!0},B));return FV.default.createElement(S,{key:B},FV.default.createElement(D,{dimColor:!0},"- "),FV.default.createElement(D,{dimColor:!0,bold:!0},Q.function),FV.default.createElement(D,{dimColor:!0}," ","(",x7Z(Q.file)??"",":",Q.line,":",Q.column,")"))})))}var FV,Ye0,x7Z=(Z)=>{return Z?.replace(`file://${v7Z()}/`,"")},f7Z;var b7Z=q(async()=>{_7Z();a$0();await We0();FV=R(F0(),1),Ye0=R(P7Z(),1),f7Z=new Ye0.default({cwd:v7Z(),internals:Ye0.default.nodeInternals()})});import{Buffer as J89}from"buffer";function K89(Z){return{name:"",fn:!1,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:Z,raw:Z,isPasted:!0}}function I89(Z){if(J89.isBuffer(Z))if(Z[0]>127&&Z[1]===void 0)return Z[0]-=128,"\x1B"+String(Z);else return String(Z);else if(Z!==void 0&&typeof Z!=="string")return String(Z);else if(!Z)return"";else return Z}function m7Z(Z,G=""){let | ... truncated
188 | `)W.name="enter";else if(Z==="\t")W.name="tab";else if(Z==="\b"||Z==="\x1B\b")W.name="backspace",W.meta=Z.charAt(0)==="\x1B";else if(Z==="\x7F"||Z==="\x1B\x7F")W.name="backspace",W.meta=Z.charAt(0)==="\x1B";else if(Z==="\x1B"||Z==="\x1B\x1B")W.name="escape",W.meta=Z.length===2;else if(Z===" "||Z==="\x1B ")W.name="space",W.meta=Z.length===2;else if(Z==="\x1F")W.name="_",W.ctrl=!0;else if(Z<="\x1A"&&Z.length===1)W.name=String.fromCharCode(Z.charCodeAt(0)+97-1),W.ctrl=!0;else if(Z.length===1&&Z>="0"&&Z<="9")W.name="number";else if(Z.length===1&&Z>="a"&&Z<="z")W.name=Z;else if(Z.length===1&&Z>="A"&&Z<="Z")W.name=Z.toLowerCase(),W.shift=!0;else if(G=B89.exec(Z))W.meta=!0,W.shift=/^[A-Z]$/.test(G[1]);else if(G=Q89.exec(Z)){let Y=[...Z];if(Y[0]==="\x1B"&&Y[1]==="\x1B")W.option=!0;let X=[G[1],G[2],G[4],G[6]].filter(Boolean).join(""),J=(G[3]||G[5]||1)-1;W.ctrl=!!(J&4),W.meta=!!(J&10),W.shift=!!(J&1),W.code=X,W.name=u7Z[X],W.shift=F89(X)||W.shift,W.ctrl=$89(X)||W.ctrl}if(W.raw==="\x1Bb")W.meta=!0,W.name="left";else if( | ... truncated
189 | Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);else throw Error(`Raw mode is not supported on the stdin provided to Ink.
190 | Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(G.setEncoding("utf8"),Z){if(this.rawModeEnabledCount===0)G.ref(),G.setRawMode(!0),G.addListener("readable",this.handleReadable),this.props.stdout.write("\x1B[?2004h");this.rawModeEnabledCount++;return}if(--this.rawModeEnabledCount===0)this.props.stdout.write("\x1B[?2004l"),G.setRawMode(!1),G.removeListener("readable",this.handleReadable),G.unref()};flushIncomplete=()=>{if(this.incompleteEscapeTimer=null,!this.keyParseState.incomplete)return;this.processInput(null)};processInput=(Z)=>{let[G,W]=m7Z(this.keyParseState,Z);this.keyParseState=W;for(let Y of G)this.handleInput(Y.sequence),this.internal_eventEmitter.emit("input",Y);if(this.keyParseState.incomplete){if(this.incompleteEscapeTimer)clearTimeout(this.incompleteEscapeTimer);this.incompleteEscapeTimer=setTimeout(this.flushIncomplete,this.keyParseState.mode==="IN_PASTE"?this.PASTE_TIMEOUT:this.NORMAL_TIMEOUT)}};handleReadable=()=>{let Z;while((Z=this.props.st | ... truncated
191 | `.repeat(Z))}var Q3Z;var V3Z=q(()=>{Q3Z=R(F0(),1)});var t89;var K3Z=q(()=>{a$0();t89=R(F0(),1)});var H3Z,e89=()=>H3Z.useContext(l$0),pj;var Jq0=q(()=>{rt0();H3Z=R(F0(),1),pj=e89});var $e0,Z49=(Z,G={})=>{let{stdin:W,setRawMode:Y,internal_exitOnCtrlC:X,internal_eventEmitter:J}=pj();$e0.useEffect(()=>{if(G.isActive===!1)return;return Y(!0),()=>{Y(!1)}},[G.isActive,Y]),$e0.useEffect(()=>{if(G.isActive===!1)return;let B=(Q)=>{let V={upArrow:Q.name==="up",downArrow:Q.name==="down",leftArrow:Q.name==="left",rightArrow:Q.name==="right",pageDown:Q.name==="pagedown",pageUp:Q.name==="pageup",home:Q.name==="home",end:Q.name==="end",return:Q.name==="return",escape:Q.name==="escape",fn:Q.fn,ctrl:Q.ctrl,shift:Q.shift,tab:Q.name==="tab",backspace:Q.name==="backspace",delete:Q.name==="delete",meta:Q.meta||Q.name==="escape"||Q.option},K=Q.ctrl?Q.name:Q.sequence;if(K===void 0)return;if(Q.name&&d7Z.includes(Q.name))K="";if(K.startsWith("\x1B"))K=K.slice(1);if(K.length===1&&typeof K[0]==="string"&&K[0].toUpperCase()===K[0])V.shif | ... truncated
192 | `);if(X!==-1){if(Y=Z.substring(0,X),Y.length+1>G)return`${Y.substring(0,G-1)}\u2026`;return`${Y}\u2026`}}if(Y.length<=G)return Y;return`${Y.substring(0,G-1)}\u2026`}function lR(Z){if(Z<60000){let X=(Z/1000).toFixed(1);return`${X.endsWith(".0")?X.slice(0,-2):X}s`}let G=Math.floor(Z/3600000),W=Math.floor(Z%3600000/60000),Y=Math.round(Z%60000/1000);if(G>0)return`${G}h ${W}m ${Y}s`;if(W>0)return`${W}m ${Y}s`;return`${Y}s`}function V6(Z){let G=Z>=1000;return new Intl.NumberFormat("en",{notation:"compact",minimumFractionDigits:G?1:0,maximumFractionDigits:1}).format(Z).toLowerCase()}function Qq0(Z,G={}){let{style:W="narrow",numeric:Y="always",now:X=new Date}=G,J=Z.getTime()-X.getTime(),B=Math.trunc(J/1000),Q=[{unit:"year",seconds:31536000,shortUnit:"y"},{unit:"month",seconds:2592000,shortUnit:"mo"},{unit:"week",seconds:604800,shortUnit:"w"},{unit:"day",seconds:86400,shortUnit:"d"},{unit:"hour",seconds:3600,shortUnit:"h"},{unit:"minute",seconds:60,shortUnit:"m"},{unit:"second",seconds:1,shortUnit:"s"}];for(let{unit:K | ... truncated
SystemError: kill() failed: EPERM: Operation not permitted
syscall: "kill",
errno: 1,
code: "EPERM"
at kill (unknown:1:1)
at A3Z (/$bunfs/root/claude:192:2938)
at /$bunfs/root/claude:192:2834
at forEach (native:1:11)
at D3Z (/$bunfs/root/claude:192:2757)
at /$bunfs/root/claude:192:2567
at Q (/$bunfs/root/claude:192:3167)
at emit (node:events:98:22)
at #maybeClose (node:child_process:768:16)
at emit (node:events:92:22)
187 | `).slice(1):void 0,W=G?f7Z.parseLine(G[0]):void 0,Y=x7Z(W?.file),X,J=0;if(Y&&W?.line&&t$0.existsSync(Y)){let B=t$0.readFileSync(Y,"utf8");if(X=j7Z(B,W.line),X)for(let{line:Q}of X)J=Math.max(J,String(Q).length)}return FV.default.createElement(S,{flexDirection:"column",padding:1},FV.default.createElement(S,null,FV.default.createElement(D,{backgroundColor:"error",color:"text"}," ","ERROR"," "),FV.default.createElement(D,null," ",Z.message)),W&&Y&&FV.default.createElement(S,{marginTop:1},FV.default.createElement(D,{dimColor:!0},Y,":",W.line,":",W.column)),W&&X&&FV.default.createElement(S,{marginTop:1,flexDirection:"column"},X.map(({line:B,value:Q})=>FV.default.createElement(S,{key:B},FV.default.createElement(S,{width:J+1},FV.default.createElement(D,{dimColor:B!==W.line,backgroundColor:B===W.line?"error":void 0,color:B===W.line?"text":void 0},String(B).padStart(J," "),":")),FV.default.createElement(D,{key:B,backgroundColor:B===W.line?"error":void 0,color:B===W.line?"text":void 0}," "+Q)))),Z.stack&&FV.default.crea | ... truncated
188 | `).slice(1).map((B)=>{let Q=f7Z.parseLine(B);if(!Q)return FV.default.createElement(S,{key:B},FV.default.createElement(D,{dimColor:!0},"- "),FV.default.createElement(D,{dimColor:!0,bold:!0},B));return FV.default.createElement(S,{key:B},FV.default.createElement(D,{dimColor:!0},"- "),FV.default.createElement(D,{dimColor:!0,bold:!0},Q.function),FV.default.createElement(D,{dimColor:!0}," ","(",x7Z(Q.file)??"",":",Q.line,":",Q.column,")"))})))}var FV,Ye0,x7Z=(Z)=>{return Z?.replace(`file://${v7Z()}/`,"")},f7Z;var b7Z=q(async()=>{_7Z();a$0();await We0();FV=R(F0(),1),Ye0=R(P7Z(),1),f7Z=new Ye0.default({cwd:v7Z(),internals:Ye0.default.nodeInternals()})});import{Buffer as J89}from"buffer";function K89(Z){return{name:"",fn:!1,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:Z,raw:Z,isPasted:!0}}function I89(Z){if(J89.isBuffer(Z))if(Z[0]>127&&Z[1]===void 0)return Z[0]-=128,"\x1B"+String(Z);else return String(Z);else if(Z!==void 0&&typeof Z!=="string")return String(Z);else if(!Z)return"";else return Z}function m7Z(Z,G=""){let | ... truncated
189 | `)W.name="enter";else if(Z==="\t")W.name="tab";else if(Z==="\b"||Z==="\x1B\b")W.name="backspace",W.meta=Z.charAt(0)==="\x1B";else if(Z==="\x7F"||Z==="\x1B\x7F")W.name="backspace",W.meta=Z.charAt(0)==="\x1B";else if(Z==="\x1B"||Z==="\x1B\x1B")W.name="escape",W.meta=Z.length===2;else if(Z===" "||Z==="\x1B ")W.name="space",W.meta=Z.length===2;else if(Z==="\x1F")W.name="_",W.ctrl=!0;else if(Z<="\x1A"&&Z.length===1)W.name=String.fromCharCode(Z.charCodeAt(0)+97-1),W.ctrl=!0;else if(Z.length===1&&Z>="0"&&Z<="9")W.name="number";else if(Z.length===1&&Z>="a"&&Z<="z")W.name=Z;else if(Z.length===1&&Z>="A"&&Z<="Z")W.name=Z.toLowerCase(),W.shift=!0;else if(G=B89.exec(Z))W.meta=!0,W.shift=/^[A-Z]$/.test(G[1]);else if(G=Q89.exec(Z)){let Y=[...Z];if(Y[0]==="\x1B"&&Y[1]==="\x1B")W.option=!0;let X=[G[1],G[2],G[4],G[6]].filter(Boolean).join(""),J=(G[3]||G[5]||1)-1;W.ctrl=!!(J&4),W.meta=!!(J&10),W.shift=!!(J&1),W.code=X,W.name=u7Z[X],W.shift=F89(X)||W.shift,W.ctrl=$89(X)||W.ctrl}if(W.raw==="\x1Bb")W.meta=!0,W.name="left";else if( | ... truncated
190 | Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);else throw Error(`Raw mode is not supported on the stdin provided to Ink.
191 | Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(G.setEncoding("utf8"),Z){if(this.rawModeEnabledCount===0)G.ref(),G.setRawMode(!0),G.addListener("readable",this.handleReadable),this.props.stdout.write("\x1B[?2004h");this.rawModeEnabledCount++;return}if(--this.rawModeEnabledCount===0)this.props.stdout.write("\x1B[?2004l"),G.setRawMode(!1),G.removeListener("readable",this.handleReadable),G.unref()};flushIncomplete=()=>{if(this.incompleteEscapeTimer=null,!this.keyParseState.incomplete)return;this.processInput(null)};processInput=(Z)=>{let[G,W]=m7Z(this.keyParseState,Z);this.keyParseState=W;for(let Y of G)this.handleInput(Y.sequence),this.internal_eventEmitter.emit("input",Y);if(this.keyParseState.incomplete){if(this.incompleteEscapeTimer)clearTimeout(this.incompleteEscapeTimer);this.incompleteEscapeTimer=setTimeout(this.flushIncomplete,this.keyParseState.mode==="IN_PASTE"?this.PASTE_TIMEOUT:this.NORMAL_TIMEOUT)}};handleReadable=()=>{let Z;while((Z=this.props.st | ... truncated
192 | `);if(X!==-1){if(Y=Z.substring(0,X),Y.length+1>G)return`${Y.substring(0,G-1)}\u2026`;return`${Y}\u2026`}}if(Y.length<=G)return Y;return`${Y.substring(0,G-1)}\u2026`}function lR(Z){if(Z<60000){let X=(Z/1000).toFixed(1);return`${X.endsWith(".0")?X.slice(0,-2):X}s`}let G=Math.floor(Z/3600000),W=Math.floor(Z%3600000/60000),Y=Math.round(Z%60000/1000);if(G>0)return`${G}h ${W}m ${Y}s`;if(W>0)return`${W}m ${Y}s`;return`${Y}s`}function V6(Z){let G=Z>=1000;return new Intl.NumberFormat("en",{notation:"compact",minimumFractionDigits:G?1:0,maximumFractionDigits:1}).format(Z).toLowerCase()}function Qq0(Z,G={}){let{style:W="narrow",numeric:Y="always",now:X=new Date}=G,J=Z.getTime()-X.getTime(),B=Math.trunc(J/1000),Q=[{unit:"year",seconds:31536000,shortUnit:"y"},{unit:"month",seconds:2592000,shortUnit:"mo"},{unit:"week",seconds:604800,shortUnit:"w"},{unit:"day",seconds:86400,shortUnit:"d"},{unit:"hour",seconds:3600,shortUnit:"h"},{unit:"minute",seconds:60,shortUnit:"m"},{unit:"second",seconds:1,shortUnit:"s"}];for(let{unit:K | ... truncated
SystemError: kill() failed: EPERM: Operation not permitted
syscall: "kill",
errno: 1,
code: "EPERM"
at A3Z (/$bunfs/root/claude:192:2938)
at <anonymous> (/$bunfs/root/claude:192:2834)
at forEach (1:11)
at D3Z (/$bunfs/root/claude:192:2757)
at <anonymous> (/$bunfs/root/claude:192:2567)
at Q (/$bunfs/root/claude:192:3167)
at emit (node:events:98:22)
at #maybeClose (node:child_process:768:16)
at emit (node:events:92:22)
Steps to Reproduce
Here is the last conversation:
Compare with `/FULL_PATH_TO_OTHER_PROJECT_1/gitlab-ci-template-po/go/test-unit.yml`
- How it handle multiple reports?
- Here is project that have multiple reports `/FULL_PATH_TO_OTHER_PROJECT_2`
⏺ Read(~/RELATIVE_PATH_TO_OTHER_PROJECT_1/gitlab-ci-template-poc/go/test-unit.yml)
⎿ Read 379 lines
⏺ Bash(find /FULL_PATH_TO_OTHER_PROJECT_2 -name "*test*.xml" -o -name "*.xml" 2>/dev/null | head -20)
⎿ (No content)
⏺ Read(~/RELATIVE_PATH_TO_OTHER_PROJECT_2/Makefile)
⎿ Read 214 lines
⏺ Perfect! Now I can see the pattern. Let me analyze how Go handles multiple reports:
⏺ Bash(ls -la /FULL_PATH_TO_OTHER_PROJECT_2/*.{xml,out,html} 2>/dev/null | head -20)
⎿ Running…
Before last Bash, it asked for permission:
│ Bash command │
│ │
│ ls -la /FULL_PATH_TO_OTHER_PROJECT_2/*.{xml,out,html} 2>/dev/null | head -20 │
│ Check what artifacts PROJECT_2 generates │
│ │
│ Do you want to proceed? │
│ ❯ 1. Yes │
│ 2. Yes, allow reading from PROJECT_2/ from this project │
│ 3. No, and tell Claude what to do differently (esc)
Then, it printed those dying messages.
However, I tried executing the Bash and got exit code 1 with this error message:
zsh: no matches found: /FULL_PATH_TO_OTHER_PROJECT_2/*.xml
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.0.14
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2
Additional Information
- Native install
- Node: v22.19.0
/status
Version: 2.0.14
Session ID: 6e1ec679-ac93-462a-8f63-926c49fd1192
Model: Default Sonnet 4.5 · Smartest model for daily use
Memory: project (CLAUDE.md)
<img width="2696" height="2966" alt="Image" src="https://github.com/user-attachments/assets/0e02f2e5-39f2-4326-9d40-6a2519748228" />
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗