{"record":{"id":"8e03126b187b24c9","repo":"coder/code-server","slug":"isenabledcodergettingstarted-was-not-provided-to-t","errorCode":null,"errorMessage":"isEnabledCoderGettingStarted was not provided to the browser","messagePattern":"isEnabledCoderGettingStarted was not provided to the browser","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"patches/getting-started.diff","lineNumber":172,"sourceCode":"@@ -44,6 +44,11 @@ export interface IBrowserWorkbenchEnviro\n \treadonly isEnabledFileUploads?: boolean;\n \n \t/**\n+\t * Enable Coder's custom getting started text.\n+\t */\n+\treadonly isEnabledCoderGettingStarted?: boolean;\n+\n+\t/**\n \t * Gets whether a resolver extension is expected for the environment.\n \t */\n \treadonly expectsResolverExtension: boolean;\n@@ -135,6 +140,13 @@ export class BrowserWorkbenchEnvironment\n \t\treturn this.options.isEnabledFileUploads;\n \t}\n \n+\tget isEnabledCoderGettingStarted(): boolean {\n+\t\tif (typeof this.options.isEnabledCoderGettingStarted === \"undefined\") {\n+\t\t\tthrow new Error('isEnabledCoderGettingStarted was not provided to the browser');\n+\t\t}\n+\t\treturn this.options.isEnabledCoderGettingStarted;\n+\t}\n+\n \t@memoize\n \tget argvResource(): URI { return joinPath(this.userRoamingDataHome, 'argv.json'); }\n \nIndex: code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts\n===================================================================\n--- code-server.orig/lib/vscode/src/vs/server/node/serverEnvironmentService.ts\n+++ code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts\n@@ -21,6 +21,7 @@ export const serverOptions: OptionDescri\n \t'auth': { type: 'string' },\n \t'disable-file-downloads': { type: 'boolean' },\n \t'disable-file-uploads': { type: 'boolean' },\n+\t'disable-getting-started-override': { type: 'boolean' },\n \n \t/* ----- server setup ----- */","sourceCodeStart":154,"sourceCodeEnd":190,"githubUrl":"https://github.com/coder/code-server/blob/51f90a376b42e217b38937410fe2855e0c1db87e/patches/getting-started.diff#L154-L190","documentation":"Thrown by the isEnabledCoderGettingStarted getter added to BrowserWorkbenchEnvironmentImpl by the getting-started.diff patch when this.options.isEnabledCoderGettingStarted is undefined. The getter gates code-server's custom 'Getting Started' experience, so any component that reads it without the option being injected will throw at runtime.","triggerScenarios":"The workbench construction options lack isEnabledCoderGettingStarted while workbench code evaluates environmentService.isEnabledCoderGettingStarted; the getter patch was applied but the serverEnvironmentService.ts hunk that registers the option was not.","commonSituations":"Partial application of getting-started.diff; VS Code upgrade where the option injection site moved; a fork that references the flag without injecting it; stale browser cache serving old workbench JS that calls the getter.","solutions":["Inject isEnabledCoderGettingStarted into the options bag code-server sends to the browser.","Apply the full getting-started.diff including the serverEnvironmentService.ts option registration.","Rebuild the workbench and clear the browser cache.","If the feature is intentionally disabled, set the flag explicitly to false rather than leaving it undefined."],"exampleFix":"// server-side option assembly\noptions.isEnabledCoderGettingStarted = false  // explicitly disable, do not leave undefined","handlingStrategy":"validation","validationCode":"options.isEnabledCoderGettingStarted = options.isEnabledCoderGettingStarted ?? false","typeGuard":"function optionsHasGettingStarted(o: Record<string, unknown>): boolean {\n  return typeof o.isEnabledCoderGettingStarted === 'boolean'\n}","tryCatchPattern":"try {\n  return environmentService.isEnabledCoderGettingStarted\n} catch (e) {\n  if (/isEnabledCoderGettingStarted was not provided/.test(e.message)) return false\n}","preventionTips":["Inject the getting-started flag explicitly (true or false).","Apply the complete getting-started.diff.","Rebuild and bust the browser cache.","Never leave a newly-added option undefined."],"tags":["workbench","patch","environment-service","getting-started","config"],"backgroundTag":null,"analyzedSha":"51f90a376b42e217b38937410fe2855e0c1db87e","analyzedAt":"2026-08-12T11:27:34.273Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}