{"record":{"id":"c9041fb5e0e48610","repo":"microsoft/semantic-kernel","slug":"unknown-metadata-type-type-metadata","errorCode":null,"errorMessage":"Unknown metadata type: {type(metadata)}","messagePattern":"Unknown metadata type: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/agents/runtime/core/telemetry/propagation.py","lineNumber":104,"sourceCode":"\n\n@experimental\ndef get_telemetry_context(metadata: TelemetryMetadataContainer) -> Context:\n    \"\"\"Retrieves the telemetry context from the given metadata.\n\n    Args:\n        metadata (Optional[EnvelopeMetadata]): The metadata containing the telemetry context.\n\n    Returns:\n        Context: The telemetry context extracted from the metadata, or an empty context if the metadata is None.\n    \"\"\"\n    if metadata is None:\n        return Context()\n    if isinstance(metadata, EnvelopeMetadata):\n        return extract(_get_carrier_for_envelope_metadata(metadata))\n    if hasattr(metadata, \"__getitem__\"):\n        return extract(_get_carrier_for_remote_call_metadata(metadata))\n    raise ValueError(f\"Unknown metadata type: {type(metadata)}\")\n\n\n@experimental\ndef get_telemetry_links(\n    metadata: TelemetryMetadataContainer,\n) -> Sequence[Link] | None:\n    \"\"\"Retrieves the telemetry links from the given metadata.\n\n    Args:\n        metadata (Optional[EnvelopeMetadata]): The metadata containing the telemetry links.\n\n    Returns:\n        Optional[Sequence[Link]]: The telemetry links extracted from the metadata, or None if there are no links.\n    \"\"\"\n    if metadata is None:\n        return None\n    if isinstance(metadata, EnvelopeMetadata):\n        context = extract(_get_carrier_for_envelope_metadata(metadata))","sourceCodeStart":86,"sourceCodeEnd":122,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/agents/runtime/core/telemetry/propagation.py#L86-L122","documentation":"Raised by the telemetry context extractor when the metadata argument is not None, not an EnvelopeMetadata, and lacks __getitem__ (i.e. is not mapping-like). EnvelopeMetadata and __getitem__-supporting objects (such as RemoteCallMetadata) are accepted; None yields an empty Context; anything else raises ValueError.","triggerScenarios":"Passing a metadata value that is neither EnvelopeMetadata nor a mapping-like object: a list, tuple, set, int, or a custom object that does not implement __getitem__.","commonSituations":"Building telemetry calls with an ad-hoc metadata object; passing a primitive or sequence where a metadata container is expected.","solutions":["Pass an EnvelopeMetadata or a mapping-like object that supports __getitem__.","Pass None when there is no telemetry metadata.","Wrap custom metadata into one of the supported container types before extraction."],"exampleFix":"// before\nctx = extract_telemetry_context(['traceparent: 00-...'])  # list has no __getitem__ semantics here -> ValueError\n\n// after\nfrom semantic_kernel.agents.runtime.core import EnvelopeMetadata\nctx = extract_telemetry_context(EnvelopeMetadata({'traceparent': '00-...'}))","handlingStrategy":"type-guard","validationCode":"def is_supported_metadata(m) -> bool:\n    from semantic_kernel.agents.runtime.core import EnvelopeMetadata\n    return m is None or isinstance(m, EnvelopeMetadata) or hasattr(m, '__getitem__')","typeGuard":"from semantic_kernel.agents.runtime.core import EnvelopeMetadata\n\ndef is_telemetry_metadata(m) -> bool:\n    return m is None or isinstance(m, EnvelopeMetadata) or hasattr(m, '__getitem__')","tryCatchPattern":null,"preventionTips":["Only pass EnvelopeMetadata, a mapping-like object, or None as telemetry metadata.","Never pass sequences or primitives as metadata.","Wrap custom structures in EnvelopeMetadata before extraction."],"tags":["telemetry","metadata","propagation"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}