coder/code-server · error · Error
isEnabledCoderGettingStarted was not provided to the browser
Error message
isEnabledCoderGettingStarted was not provided to the browser
What it means
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.
Source
Thrown at patches/getting-started.diff:172
@@ -44,6 +44,11 @@ export interface IBrowserWorkbenchEnviro
readonly isEnabledFileUploads?: boolean;
/**
+ * Enable Coder's custom getting started text.
+ */
+ readonly isEnabledCoderGettingStarted?: boolean;
+
+ /**
* Gets whether a resolver extension is expected for the environment.
*/
readonly expectsResolverExtension: boolean;
@@ -135,6 +140,13 @@ export class BrowserWorkbenchEnvironment
return this.options.isEnabledFileUploads;
}
+ get isEnabledCoderGettingStarted(): boolean {
+ if (typeof this.options.isEnabledCoderGettingStarted === "undefined") {
+ throw new Error('isEnabledCoderGettingStarted was not provided to the browser');
+ }
+ return this.options.isEnabledCoderGettingStarted;
+ }
+
@memoize
get argvResource(): URI { return joinPath(this.userRoamingDataHome, 'argv.json'); }
Index: code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts
===================================================================
--- code-server.orig/lib/vscode/src/vs/server/node/serverEnvironmentService.ts
+++ code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts
@@ -21,6 +21,7 @@ export const serverOptions: OptionDescri
'auth': { type: 'string' },
'disable-file-downloads': { type: 'boolean' },
'disable-file-uploads': { type: 'boolean' },
+ 'disable-getting-started-override': { type: 'boolean' },
/* ----- server setup ----- */View on GitHub (pinned to 51f90a376b)
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.
Example fix
// server-side option assembly options.isEnabledCoderGettingStarted = false // explicitly disable, do not leave undefined
Defensive patterns
Strategy: validation
Validate before calling
options.isEnabledCoderGettingStarted = options.isEnabledCoderGettingStarted ?? false
Type guard
function optionsHasGettingStarted(o: Record<string, unknown>): boolean {
return typeof o.isEnabledCoderGettingStarted === 'boolean'
} Try / catch
try {
return environmentService.isEnabledCoderGettingStarted
} catch (e) {
if (/isEnabledCoderGettingStarted was not provided/.test(e.message)) return false
} Prevention
- 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.
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- isEnabledFileDownloads was not provided to the browser
- isEnabledFileUploads was not provided to the browser
- userDataPath was not provided to the browser
- Missing web configuration element
- invalid config: ${config}
AI-assisted analysis of coder/code-server@51f90a376b (2026-08-12).
Data as JSON: /api/errors/8e03126b187b24c9.
Report an issue: GitHub.