{"record":{"id":"f724b7c91cbee77e","repo":"vitessio/vitess","slug":"invalid-connid","errorCode":null,"errorMessage":"invalid connID","messagePattern":"invalid connID","errorType":"http","errorClass":null,"httpStatus":500,"severity":"error","filePath":"go/vt/vttablet/tabletserver/livequeryz.go","lineNumber":104,"sourceCode":"\t\tif err := livequeryzTmpl.Execute(w, rows[i]); err != nil {\n\t\t\tlog.Error(fmt.Sprintf(\"livequeryz: couldn't execute template: %v\", err))\n\t\t}\n\t}\n}\n\nfunc livequeryzTerminateHandler(queryLists []*QueryList, w http.ResponseWriter, r *http.Request) {\n\tif err := acl.CheckAccessHTTP(r, acl.ADMIN); err != nil {\n\t\tacl.SendError(w, err)\n\t\treturn\n\t}\n\tif err := r.ParseForm(); err != nil {\n\t\thttp.Error(w, fmt.Sprintf(\"cannot parse form: %s\", err), http.StatusInternalServerError)\n\t\treturn\n\t}\n\tconnID := r.FormValue(\"connID\")\n\tc, err := strconv.ParseInt(connID, 10, 64)\n\tif err != nil {\n\t\thttp.Error(w, \"invalid connID\", http.StatusInternalServerError)\n\t\treturn\n\t}\n\tfor _, ql := range queryLists {\n\t\tif ql.Terminate(c) {\n\t\t\tbreak\n\t\t}\n\t}\n\tlivequeryzHandler(queryLists, w, r)\n}\n","sourceCodeStart":86,"sourceCodeEnd":114,"githubUrl":"https://github.com/vitessio/vitess/blob/01a25a7d176f94613b8d59d799f438380a8760e4/go/vt/vttablet/tabletserver/livequeryz.go#L86-L114","documentation":"After parsing the form, the terminate handler converts the connID form value with strconv.ParseInt; a non-numeric or missing connID yields HTTP 500 with the body 'invalid connID'. The connection ID must be a base-10 int64 matching a live MySQL connection on the tablet.","triggerScenarios":"POST /livequeryz/terminate with connID absent, empty, or non-numeric (e.g. connID=abc), so strconv.ParseInt fails.","commonSituations":"Copy-pasting a connID with whitespace or from the wrong base; terminating from a stale dashboard row; forgetting the connID field entirely.","solutions":["Pass a valid numeric connID from /livequeryz output: -d 'connID=12345'","Refresh the live-query list first — the connection may already be gone","Check for stray characters/whitespace in the ID in your script"],"exampleFix":"// before\ncurl -X POST 'http://tablet:15100/livequeryz/terminate' -d 'connID=abc'\n// after\ncurl -X POST 'http://tablet:15100/livequeryz/terminate' -d 'connID=12345'","handlingStrategy":"validation","validationCode":"connID, err := strconv.ParseInt(rawConnID, 10, 64)\nif err != nil {\n    return fmt.Errorf(\"connID %q must be a base-10 integer\", rawConnID)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Take connID values directly from /livequeryz output programmatically","Trim whitespace before sending IDs","Refresh the connection list before terminating — IDs may be stale"],"tags":["http-api","vttablet","bad-request","parsing"],"backgroundTag":"invalid-parameter-format","analyzedSha":"01a25a7d176f94613b8d59d799f438380a8760e4","analyzedAt":"2026-09-01T17:28:30.605Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}