{"record":{"id":"4913bdfe881ca582","repo":"chenhg5/cc-connect","slug":"opencodesession-stdout-pipe-w","errorCode":null,"errorMessage":"opencodeSession: stdout pipe: %w","messagePattern":"opencodeSession: stdout pipe: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agent/opencode/session.go","lineNumber":101,"sourceCode":"\n\tchatID := s.CurrentSessionID()\n\tisResume := chatID != \"\"\n\n\targs := s.buildRunArgs(prompt, imagePaths, chatID)\n\n\tslog.Debug(\"opencodeSession: launching\", \"resume\", isResume, \"args\", core.RedactArgs(args))\n\n\tcmd := exec.CommandContext(s.ctx, s.cmd, args...)\n\tcmd.Dir = s.workDir\n\tenv := os.Environ()\n\tif len(s.extraEnv) > 0 {\n\t\tenv = core.MergeEnv(env, s.extraEnv)\n\t}\n\tcmd.Env = env\n\n\tstdout, err := cmd.StdoutPipe()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"opencodeSession: stdout pipe: %w\", err)\n\t}\n\n\tvar stderrBuf bytes.Buffer\n\tcmd.Stderr = &stderrBuf\n\tcmd.Stdin = strings.NewReader(prompt)\n\n\tif err := cmd.Start(); err != nil {\n\t\treturn fmt.Errorf(\"opencodeSession: start: %w\", err)\n\t}\n\n\ts.wg.Add(1)\n\tgo s.readLoop(cmd, stdout, &stderrBuf)\n\n\treturn nil\n}\n\nfunc (s *opencodeSession) stageImages(prompt string, images []core.ImageAttachment) (string, []string, error) {\n\tif len(images) == 0 {","sourceCodeStart":83,"sourceCodeEnd":119,"githubUrl":"https://github.com/chenhg5/cc-connect/blob/4000b2338aa6e850c99df54f8b0ed6ed7460b401/agent/opencode/session.go#L83-L119","documentation":"Wraps a failed exec.Cmd.StdoutPipe() in opencodeSession.Send while preparing the opencode CLI subprocess. Pre-spawn pipe allocation failure — practically always OS fd exhaustion, not an opencode issue.","triggerScenarios":"Thrown at agent/opencode/session.go:101 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Raise the file-descriptor limit","Run fewer concurrent opencode sessions","Look for fd leaks in the daemon"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4000b2338aa6e850c99df54f8b0ed6ed7460b401","analyzedAt":"2026-09-06T11:45:09.575Z","contentChangedAt":"2026-09-06T11:45:09.575Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}