{"record":{"id":"4a132528914cbb44","repo":"chenhg5/cc-connect","slug":"session-requires-a-value","errorCode":null,"errorMessage":"--session requires a value","messagePattern":"--session requires a value","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cmd/cc-connect/send.go","lineNumber":91,"sourceCode":"\tvar dataDir string\n\tvar useStdin bool\n\tvar imagePaths []string\n\tvar filePaths []string\n\tvar audioPaths []string\n\tvar videoPaths []string\n\tvar positional []string\n\n\tfor i := 0; i < len(args); i++ {\n\t\tswitch args[i] {\n\t\tcase \"--project\", \"-p\":\n\t\t\tif i+1 >= len(args) {\n\t\t\t\treturn req, \"\", fmt.Errorf(\"--project requires a value\")\n\t\t\t}\n\t\t\ti++\n\t\t\treq.Project = args[i]\n\t\tcase \"--session\", \"-s\":\n\t\t\tif i+1 >= len(args) {\n\t\t\t\treturn req, \"\", fmt.Errorf(\"--session requires a value\")\n\t\t\t}\n\t\t\ti++\n\t\t\treq.SessionKey = args[i]\n\t\tcase \"--message\", \"-m\":\n\t\t\tif i+1 >= len(args) {\n\t\t\t\treturn req, \"\", fmt.Errorf(\"--message requires a value\")\n\t\t\t}\n\t\t\ti++\n\t\t\treq.Message = args[i]\n\t\tcase \"--cwd\", \"--work-dir\":\n\t\t\tif i+1 >= len(args) {\n\t\t\t\treturn req, \"\", fmt.Errorf(\"%s requires a value\", args[i])\n\t\t\t}\n\t\t\ti++\n\t\t\treq.WorkDir = args[i]\n\t\tcase \"--tts\":\n\t\t\tif i+1 >= len(args) {\n\t\t\t\treturn req, \"\", fmt.Errorf(\"%s requires a value\", args[i])","sourceCodeStart":73,"sourceCodeEnd":109,"githubUrl":"https://github.com/chenhg5/cc-connect/blob/4000b2338aa6e850c99df54f8b0ed6ed7460b401/cmd/cc-connect/send.go#L73-L109","documentation":"In parseSendArgs, the --session/-s flag must be followed by a session key. If the flag is the last token in argv, the parser cannot read a value and returns this error instead of leaving SessionKey empty.","triggerScenarios":"Running `cc-connect send --session` or `-s` as the final argument with no session key following it.","commonSituations":"Session key pulled from a variable that is empty (e.g. `$SESSION` unset so the shell expands to nothing); truncated command in automation.","solutions":["Pass a session key: `cc-connect send --session <key> ...`.","In scripts, validate the variable is non-empty before invoking, or drop the flag when unset.","Use the documented env fallback for session if available rather than a bare flag."],"exampleFix":"// before (SESSION empty in shell)\ncc-connect send -s -m \"hi\"\n// after\n[ -n \"$SESSION\" ] && args=(-s \"$SESSION\") || args=(); cc-connect send \"${args[@]}\" -m \"hi\"","handlingStrategy":"validation","validationCode":"# shell\n[ -n \"$SESSION\" ] || { echo \"--session requires a value\"; exit 2; }\ncc-connect send -s \"$SESSION\" -m \"hi\"","typeGuard":null,"tryCatchPattern":"req, _, err := parseSendArgs(args)\nif err != nil {\n    fmt.Fprintf(os.Stderr, \"flag error: %v\\n\", err)\n    os.Exit(2)\n}","preventionTips":["Quote session keys; use \"${VAR:?}\" guards in scripts.","Omit the flag entirely when no session is intended.","Keep a fixed argument order in automation to avoid truncation."],"tags":["go","cli","flag-parsing"],"backgroundTag":"missing-cli-argument","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"}