{"record":{"id":"69094b0b64fe1963","repo":"juanfont/headscale","slug":"s-login-url-is-nil","errorCode":null,"errorMessage":"%s login url is nil","messagePattern":"(.+?) login url is nil","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"integration/scenario.go","lineNumber":1164,"sourceCode":"\t\treturn \"\", err\n\t}\n\n\treturn body, nil\n}\n\n// doLoginURLWithClient performs the login request using the provided HTTP client.\n// When followRedirects is false, it will return the first redirect without following it.\nfunc doLoginURLWithClient(hostname string, loginURL *url.URL, hc *http.Client, followRedirects bool) (\n\tstring,\n\t*url.URL,\n\terror,\n) {\n\tif hc == nil {\n\t\treturn \"\", nil, fmt.Errorf(\"%s http client is nil\", hostname) //nolint:err113\n\t}\n\n\tif loginURL == nil {\n\t\treturn \"\", nil, fmt.Errorf(\"%s login url is nil\", hostname) //nolint:err113\n\t}\n\n\tlog.Printf(\"%s logging in with url: %s\", hostname, loginURL.String())\n\n\tctx := context.Background()\n\n\treq, err := http.NewRequestWithContext(ctx, http.MethodGet, loginURL.String(), nil)\n\tif err != nil {\n\t\treturn \"\", nil, fmt.Errorf(\"%s creating http request: %w\", hostname, err)\n\t}\n\n\toriginalRedirect := hc.CheckRedirect\n\tif !followRedirects {\n\t\thc.CheckRedirect = func(req *http.Request, via []*http.Request) error {\n\t\t\treturn http.ErrUseLastResponse\n\t\t}\n\t}\n","sourceCodeStart":1146,"sourceCodeEnd":1182,"githubUrl":"https://github.com/juanfont/headscale/blob/565fd254d06c4c7f9a8cad1714a43445c79ba420/integration/scenario.go#L1146-L1182","documentation":"Error \"%s login url is nil\" thrown in juanfont/headscale.","triggerScenarios":"Thrown at integration/scenario.go:1164 when the library encounters an invalid state.","commonSituations":"No login URL was available from tailscaled. Ensure 'tailscale up' was run and the client is in NeedsLogin state.","solutions":["Inspect the wrapped error for the underlying cause and correct the failing condition (login url is nil); retry the operation after fixing the input, configuration, or environment."],"exampleFix":"Inspect the wrapped error for the underlying cause and correct the failing condition (login url is nil); retry the operation after fixing the input, configuration, or environment.","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"565fd254d06c4c7f9a8cad1714a43445c79ba420","analyzedAt":"2026-08-15T13:12:30.133Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}