{"record":{"id":"58e06470f428ebf7","repo":"SigNoz/signoz","slug":"internal-58e064","errorCode":"internal","errorMessage":"failed to get traces keys","messagePattern":"failed to get traces keys","errorType":"error_code","errorClass":null,"httpStatus":500,"severity":"error","filePath":"pkg/telemetrymetadata/metadata.go","lineNumber":144,"sourceCode":"}\n\n// tracesTblStatementToFieldKeys returns materialised attribute/resource/scope keys from the traces table.\nfunc (t *telemetryMetaStore) tracesTblStatementToFieldKeys(ctx context.Context) ([]*telemetrytypes.TelemetryFieldKey, error) {\n\tctx = ctxtypes.NewContextWithCommentVals(ctx, map[string]string{\n\t\tinstrumentationtypes.TelemetrySignal:  telemetrytypes.SignalTraces.StringValue(),\n\t\tinstrumentationtypes.CodeNamespace:    \"metadata\",\n\t\tinstrumentationtypes.CodeFunctionName: \"tracesTblStatementToFieldKeys\",\n\t})\n\tquery := fmt.Sprintf(\"SHOW CREATE TABLE %s.%s\", t.tracesDBName, t.indexV3TblName)\n\tstatements := []telemetrytypes.ShowCreateTableStatement{}\n\terr := t.telemetrystore.ClickhouseDB().Select(ctx, &statements, query)\n\tif err != nil {\n\t\treturn nil, errors.Wrap(err, errors.TypeInternal, errors.CodeInternal, ErrFailedToGetTblStatement.Error())\n\t}\n\n\tmaterialisedKeys, err := ExtractFieldKeysFromTblStatement(statements[0].Statement)\n\tif err != nil {\n\t\treturn nil, errors.Wrap(err, errors.TypeInternal, errors.CodeInternal, ErrFailedToGetTracesKeys.Error())\n\t}\n\n\tfor idx := range materialisedKeys {\n\t\tmaterialisedKeys[idx].Signal = telemetrytypes.SignalTraces\n\t}\n\n\treturn materialisedKeys, nil\n}\n\n// getTracesKeys returns the keys from the spans that match the field selection criteria.\nfunc (t *telemetryMetaStore) getTracesKeys(ctx context.Context, fieldKeySelectors []*telemetrytypes.FieldKeySelector) ([]*telemetrytypes.TelemetryFieldKey, bool, error) {\n\tctx = ctxtypes.NewContextWithCommentVals(ctx, map[string]string{\n\t\tinstrumentationtypes.TelemetrySignal:  telemetrytypes.SignalTraces.StringValue(),\n\t\tinstrumentationtypes.CodeNamespace:    \"metadata\",\n\t\tinstrumentationtypes.CodeFunctionName: \"getTracesKeys\",\n\t})\n\n\tif len(fieldKeySelectors) == 0 {","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/telemetrymetadata/metadata.go#L126-L162","documentation":"getTracesKeys extracts materialised field keys by parsing the traces index table's CREATE statement; this error is returned when ExtractFieldKeysFromTblStatement fails to parse the SHOW CREATE TABLE output (error 722 already covers the DB select itself). It is an internal error wrapping the parse failure with 'failed to get traces keys'.","triggerScenarios":"Running GetKeys/GetKeysMulti for SignalTraces when the parsed CREATE TABLE DDL of the index_v3 table contains constructs the extractor cannot handle, or the statement blob is empty/malformed.","commonSituations":"Upgrading ClickHouse to a version that emits new column DDL syntax, a drifted or manually modified index_v3 table schema, or a SigNoq schema migration that outpaced the parser.","solutions":["Check the wrapped error for the exact parse failure line/column in the DDL","Inspect SHOW CREATE TABLE <tracesDB>.<indexV3TblName> manually and compare against expected schema","Upgrade the SigNoq schema (migrations) so the table matches the version the parser expects","Report/patch ExtractFieldKeysFromTblStatement if the DDL uses unsupported syntax"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":"if err != nil {\n    if e, ok := err.(*errors.Error); ok && e.Code == errors.CodeInternal {\n        // fall back to a static key set or cached keys\n        return cachedKeys, nil\n    }\n    return nil, err\n}","preventionTips":["Keep app and ClickHouse schema versions aligned via migrations","Cache previously extracted materialised keys as a fallback","Monitor for parse failures after ClickHouse upgrades"],"tags":["clickhouse","schema-parse","traces","internal"],"backgroundTag":"ddl-parse-failure","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}