{"record":{"id":"e7894e98ca96d324","repo":"AlexxIT/go2rtc","slug":"milesone-create-session","errorCode":null,"errorMessage":"milesone: create session: ","messagePattern":"milesone: create session: ","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/webrtc/milestone.go","lineNumber":118,"sourceCode":"\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treq, err := http.NewRequest(\"POST\", m.url+\"/REST/v1/WebRTC/Session\", bytes.NewBuffer(data))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treq.Header.Set(\"Authorization\", \"Bearer \"+m.token)\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\n\tres, err := tcp.Do(req)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer res.Body.Close()\n\n\tif res.StatusCode != http.StatusOK {\n\t\treturn \"\", errors.New(\"milesone: create session: \" + res.Status)\n\t}\n\n\tvar response struct {\n\t\tSessionId string `json:\"sessionId\"`\n\t\tOfferSDP  string `json:\"offerSDP\"`\n\t}\n\tif err = json.NewDecoder(res.Body).Decode(&response); err != nil {\n\t\treturn \"\", err\n\t}\n\n\tvar offer pion.SessionDescription\n\tif err = json.Unmarshal([]byte(response.OfferSDP), &offer); err != nil {\n\t\treturn \"\", err\n\t}\n\n\tm.sessionID = response.SessionId\n\n\treturn offer.SDP, nil","sourceCodeStart":100,"sourceCodeEnd":136,"githubUrl":"https://github.com/AlexxIT/go2rtc/blob/c245815e75e2a5fd60b4290f12bfc04e55a984d3/internal/webrtc/milestone.go#L100-L136","documentation":"Milestone GetOffer's HTTP status guard: the POST to /REST/v1/WebRTC/Session returned a non-200 status (appended to the message, e.g. 401/500). The session needed to obtain the WebRTC offer SDP could not be created; bearer token problems and missing WebRTC rights are the usual causes.","triggerScenarios":"Thrown at internal/webrtc/milestone.go:118 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the appended status: 401 means the token expired — re-run GetToken/login; 5xx indicates a server-side Milestone failure","Verify the camera and user are enabled for WebRTC streaming in Milestone","Retry after confirming server health"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c245815e75e2a5fd60b4290f12bfc04e55a984d3","analyzedAt":"2026-09-07T11:47:02.965Z","contentChangedAt":"2026-09-07T11:47:02.965Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}