{"record":{"id":"d9fee4e1535f7eee","repo":"chenhg5/cc-connect","slug":"invalid-integer-s","errorCode":null,"errorMessage":"invalid integer: %s","messagePattern":"invalid integer: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/engine.go","lineNumber":15152,"sourceCode":"\t\t\t\t}\n\t\t\t\te.display.ThinkingMessages = b\n\t\t\t\tif e.displaySaveFunc != nil {\n\t\t\t\t\treturn e.displaySaveFunc(nil, &b, nil, nil, nil)\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tkey:    \"thinking_max_len\",\n\t\t\tdesc:   \"Max chars for thinking messages (0=no truncation)\",\n\t\t\tdescZh: \"思考消息最大长度 (0=不截断)\",\n\t\t\tgetFunc: func() string {\n\t\t\t\treturn fmt.Sprintf(\"%d\", e.display.ThinkingMaxLen)\n\t\t\t},\n\t\t\tsetFunc: func(v string) error {\n\t\t\t\tn, err := strconv.Atoi(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"invalid integer: %s\", v)\n\t\t\t\t}\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn fmt.Errorf(\"value must be >= 0\")\n\t\t\t\t}\n\t\t\t\te.display.ThinkingMaxLen = n\n\t\t\t\tif e.displaySaveFunc != nil {\n\t\t\t\t\treturn e.displaySaveFunc(nil, nil, &n, nil, nil)\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tkey:    \"tool_messages\",\n\t\t\tdesc:   \"Whether tool progress messages are shown (true/false)\",\n\t\t\tdescZh: \"是否显示工具进度消息 (true/false)\",\n\t\t\tgetFunc: func() string {\n\t\t\t\treturn fmt.Sprintf(\"%t\", e.display.ToolMessages)\n\t\t\t},","sourceCodeStart":15134,"sourceCodeEnd":15170,"githubUrl":"https://github.com/chenhg5/cc-connect/blob/4000b2338aa6e850c99df54f8b0ed6ed7460b401/core/engine.go#L15134-L15170","documentation":"The /config set handler for thinking_max_len could not parse the user-supplied value as an integer via strconv.Atoi. Validation error naming the offending raw string; callers must supply a non-negative number.","triggerScenarios":"Setting the thinking-max-length option with a non-numeric value such as \"2000 chars\", \"2,000\", or an empty string.","commonSituations":"Pasting values with units or thousands separators into config.toml; leaving the field empty and having it parsed as \"\".","solutions":["Provide a plain integer, e.g. 2000.","Remove units, commas, spaces, and quotes from the value.","If the value comes from a form/UI, validate with strconv.Atoi on the client side first."],"exampleFix":"// before\nsetFunc(\"2,000\") // error\n// after\nsetFunc(\"2000\")","handlingStrategy":"validation","validationCode":"n, err := strconv.Atoi(strings.TrimSpace(v)); if err != nil || n < 0 { return fmt.Errorf(\"need a non-negative integer, got %q\", v) }","typeGuard":null,"tryCatchPattern":"if err := setThinkingMaxLen(v); err != nil {\n    if strings.Contains(err.Error(), \"invalid integer\") { /* re-prompt for a plain number */ }\n    return err\n}","preventionTips":["Enter plain integers without units, commas, or spaces.","Sanitize numeric config fields at load time.","Use a numeric input field (not free text) in any settings UI."],"tags":["configuration","integer","parsing"],"backgroundTag":"invalid-argument-format","analyzedSha":"4000b2338aa6e850c99df54f8b0ed6ed7460b401","analyzedAt":"2026-09-06T11:45:09.575Z","contentChangedAt":"2026-09-06T11:45:09.575Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}