{"record":{"id":"98e416de09a4d392","repo":"angular/angular","slug":"managed-metadata-lazy-creation","errorCode":"MANAGED_METADATA_LAZY_CREATION","errorMessage":"Managed metadata cannot be created lazily","messagePattern":"Managed metadata cannot be created lazily","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"packages/forms/signals/src/field/metadata.ts","lineNumber":67,"sourceCode":"                computed(() => logic.compute(this.node.context)),\n              );\n              this.metadata.set(key, result);\n            }\n          }\n        }),\n      );\n    } finally {\n      if (wasInParams) ɵsetInParamsFunction(true);\n    }\n  }\n\n  /** Gets the value of an `MetadataKey` for the field. */\n  get<T>(key: MetadataKey<T, unknown, unknown>): T | undefined {\n    // We create non-managed metadata lazily, the first time they are accessed.\n    if (this.has(key)) {\n      if (!this.metadata.has(key)) {\n        if (key.create) {\n          throw new RuntimeError(\n            RuntimeErrorCode.MANAGED_METADATA_LAZY_CREATION,\n            ngDevMode && 'Managed metadata cannot be created lazily',\n          );\n        }\n        const logic = this.node.logicNode.logic.getMetadata(key);\n        this.metadata.set(\n          key,\n          computed(() => logic.compute(this.node.context)),\n        );\n      }\n    }\n    return this.metadata.get(key) as T | undefined;\n  }\n\n  /** Checks whether the current metadata state has the given metadata key. */\n  has(key: MetadataKey<any, any, any>): boolean {\n    // Metadata keys get added to the map lazily, on first access,\n    // so we can't rely on checking presence in the metadata map.","sourceCodeStart":49,"sourceCodeEnd":85,"githubUrl":"https://github.com/angular/angular/blob/51cb07e98081ab7e4e84a9e0949266a8e19cca84/packages/forms/signals/src/field/metadata.ts#L49-L85","documentation":"Error \"Managed metadata cannot be created lazily\" thrown in angular/angular.","triggerScenarios":"Thrown at packages/forms/signals/src/field/metadata.ts:67 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Create managed metadata eagerly via the metadata definition API instead of trying to define it lazily inside a getter or deferred callback."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"51cb07e98081ab7e4e84a9e0949266a8e19cca84","analyzedAt":"2026-08-22T07:04:54.531Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}