{"record":{"id":"efc99015fb0ae7e3","repo":"pulumi/pulumi","slug":"fatal-missing-engine-address","errorCode":null,"errorMessage":"fatal: Missing <engine> address","messagePattern":"fatal: Missing <engine> address","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"sdk/nodejs/provider/server.ts","lineNumber":608,"sourceCode":"                    failure.setReason(f.reason);\n                    failureList.push(failure);\n                }\n                resp.setFailuresList(failureList);\n            }\n\n            callback(undefined, resp);\n        } catch (e) {\n            console.error(`${e}: ${e.stack}`);\n            callback(e, undefined);\n        }\n    }\n}\n\nasync function configureRuntime(req: any, engineAddr: string | undefined) {\n    // NOTE: these are globals! We should ensure that all settings are identical between calls, and eventually\n    // refactor so we can avoid the global state.\n    if (engineAddr === undefined) {\n        throw new Error(\"fatal: Missing <engine> address\");\n    }\n\n    settings.resetOptions(\n        req.getProject(),\n        req.getStack(),\n        req.getParallel(),\n        engineAddr,\n        req.getMonitorendpoint(),\n        req.getDryrun(),\n        req.getOrganization(),\n    );\n\n    // resetOptions doesn't reset the saved features\n    await settings.awaitFeatureSupport();\n\n    const pulumiConfig: { [key: string]: string } = {};\n    const rpcConfig = req.getConfigMap();\n    if (rpcConfig) {","sourceCodeStart":590,"sourceCodeEnd":626,"githubUrl":"https://github.com/pulumi/pulumi/blob/793f7b2e160db4321fb7fb6b0607461e01cb251e/sdk/nodejs/provider/server.ts#L590-L626","documentation":"The resource provider gRPC server's `configureRuntime` requires the engine address passed with the Configure RPC to initialize global settings (project, stack, parallelism). A undefined `engineAddr` means the host did not supply the engine's gRPC endpoint, so the server cannot communicate back and fails hard.","triggerScenarios":"The `PULUMI_NODEJS_ENGINE` env var / engine address argument is not forwarded when the language host launches the provider; invoking the provider server manually (e.g. `node provider.js`) without an engine address; a bug or version mismatch where the engine omits the address field in the Configure request.","commonSituations":"Running the provider binary standalone for debugging; stale Pulumi CLI/host versions where the RPC contract changed; environment variable stripped in containerized or CI shells.","solutions":["Run the provider through `pulumi` (not directly) so the engine address is supplied to the Configure RPC.","Ensure the `PULUMI_NODEJS_ENGINE` environment variable is set and not stripped when launching the program.","Upgrade the Pulumi CLI and provider SDK together to keep the engine/host RPC contract in sync."],"exampleFix":"// before (standalone run)\nnode node_modules/@pulumi/my-provider/bin/provider.js\n// after\nPULUMI_NODEJS_ENGINE=127.0.0.1:57575 node node_modules/@pulumi/my-provider/bin/provider.js","handlingStrategy":"try-catch","validationCode":"if (!process.env.PULUMI_NODEJS_ENGINE && !process.env.PULUMI_DEBUG_GRPC) {\n  console.error(\"Not launched by the Pulumi engine (no engine address env var); refusing to start\");\n  process.exit(1);\n}","typeGuard":null,"tryCatchPattern":"try {\n  await server.listen(args);\n} catch (e) {\n  if (/Missing <engine> address/.test((e as Error).message)) {\n    console.error(\"This provider must be run by the Pulumi engine, not directly. Set PULUMI_NODEJS_ENGINE or use 'pulumi up'.\");\n    process.exit(1);\n  }\n  throw e;\n}","preventionTips":["Never run provider binaries standalone without an engine address","Keep Pulumi CLI and language SDK versions aligned","Verify container/CI images preserve PULUMI_NODEJS_ENGINE"],"tags":["nodejs","grpc","engine","provider"],"backgroundTag":"missing-engine-address","analyzedSha":"793f7b2e160db4321fb7fb6b0607461e01cb251e","analyzedAt":"2026-08-31T09:36:43.099Z","schemaVersion":2},"datasetVersion":"2026-09-01T08:17:40.651Z"}