{"record":{"id":"e2915648e78f1e82","repo":"different-ai/openwork","slug":"desktop-signup-deprecated","errorCode":"desktop_signup_deprecated","errorMessage":"Create your account in the browser to choose a secure password.","messagePattern":"Create your account in the browser to choose a secure password\\.","errorType":"error_code","errorClass":"DenApiError","httpStatus":410,"severity":"error","filePath":"apps/app/src/app/lib/den.ts","lineNumber":2941,"sourceCode":"\n    async signInEmail(email: string, password: string): Promise<DenAuthResult> {\n      const payload = await requestJson<unknown>(baseUrls, \"/api/auth/sign-in/email\", {\n        method: \"POST\",\n        body: {\n          email: email.trim(),\n          password,\n        },\n      });\n      return { user: getUser(payload), token: getToken(payload) };\n    },\n\n    /**\n     * @deprecated Desktop email/password signup is no longer supported directly.\n     * Open the Den browser signup flow with `buildDenAuthUrl(baseUrl, \"sign-up\")`\n     * so password-strength feedback and invite handling stay server-compatible.\n     */\n    async signUpEmail(_email: string, _password: string): Promise<DenAuthResult> {\n      throw new DenApiError(\n        410,\n        \"desktop_signup_deprecated\",\n        \"Create your account in the browser to choose a secure password.\",\n      );\n    },\n\n    async signOut() {\n      await requestJson<unknown>(baseUrls, \"/api/auth/sign-out\", {\n        method: \"POST\",\n        token,\n        body: {},\n      });\n    },\n\n    async getSession(): Promise<DenUser> {\n      const payload = await requestJson<unknown>(baseUrls, \"/v1/me\", {\n        method: \"GET\",\n        token,","sourceCodeStart":2923,"sourceCodeEnd":2959,"githubUrl":"https://github.com/different-ai/openwork/blob/2b7df46e8ae1517d64c896c7793d2d52ec845669/apps/app/src/app/lib/den.ts#L2923-L2959","documentation":"signUpEmail is intentionally unsupported: desktop email/password signup was deprecated in favor of the browser-based Den signup flow (which provides password-strength feedback and invite handling). Any call throws a 410 Gone DenApiError with code \"desktop_signup_deprecated\". The parameters are ignored.","triggerScenarios":"Calling client.auth.signUpEmail(email, password) directly from the desktop app.","commonSituations":"Old code paths or custom scripts written before the deprecation that attempted in-app account creation.","solutions":["Replace signUpEmail calls with opening buildDenAuthUrl(baseUrl, \"sign-up\") in the browser","Route the user through the browser signup and complete sign-in via the desktop handoff flow","Remove dead signup UI from the desktop app"],"exampleFix":"// before\nawait client.auth.signUpEmail(email, password);\n// after\nopenExternal(buildDenAuthUrl(baseUrl, \"sign-up\"));\nconst result = await exchangeHandoffAndSignIn(grant, { baseUrl });","handlingStrategy":"validation","validationCode":"const supportsDesktopSignup = false; // deprecated upstream\nif (wantsSignUp) openExternal(buildDenAuthUrl(baseUrl, \"sign-up\"));","typeGuard":null,"tryCatchPattern":"try {\n  await client.auth.signUpEmail(email, password);\n} catch (err) {\n  if (err instanceof DenApiError && err.code === \"desktop_signup_deprecated\") {\n    openExternal(buildDenAuthUrl(baseUrl, \"sign-up\"));\n  } else throw err;\n}","preventionTips":["Never call signUpEmail; it always throws 410","Direct users to the browser signup via buildDenAuthUrl(baseUrl, \"sign-up\")","Complete sign-in through the desktop handoff flow after browser signup","Remove legacy signup UI from desktop surfaces"],"tags":["auth","deprecated","sign-up","den-cloud"],"backgroundTag":"deprecated-api-endpoint","analyzedSha":"2b7df46e8ae1517d64c896c7793d2d52ec845669","analyzedAt":"2026-09-01T07:59:23.713Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}