{"record":{"id":"5b219fbf67944d02","repo":"BoundaryML/baml","slug":"failed-to-encode-kwargs-w","errorCode":null,"errorMessage":"failed to encode kwargs: %w","messagePattern":"failed to encode kwargs: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"engine/language_client_go/pkg/rawobjects_constructors.go","lineNumber":17,"sourceCode":"package baml\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/boundaryml/baml/engine/language_client_go/baml_go/raw_objects\"\n\t\"github.com/boundaryml/baml/engine/language_client_go/baml_go/serde\"\n\t\"github.com/boundaryml/baml/engine/language_client_go/pkg/cffi\"\n)\n\n// / Construct Collector\nfunc (r *BamlRuntime) NewCollector(name string) (Collector, error) {\n\tkwargs, err := serde.EncodeMapEntries(map[string]any{\n\t\t\"name\": name,\n\t}, \"collector constructor args\")\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to encode kwargs: %w\", err)\n\t}\n\n\tptr, err := raw_objects.NewRawObject(r.runtime, cffi.BamlObjectType_OBJECT_COLLECTOR, kwargs)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create collector: %w\", err)\n\t}\n\n\tas_collector, ok := ptr.(*collector)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"unexpected type for collector creation: %T\", ptr)\n\t}\n\n\treturn as_collector, nil\n}\n\nfunc (r *BamlRuntime) newMediaFromUrl(mediaType MediaType, url string, mimeType *string) (media, error) {\n\tkwargs, err := serde.EncodeMapEntries(map[string]any{\n\t\t\"mime_type\": mimeType,","sourceCodeStart":1,"sourceCodeEnd":35,"githubUrl":"https://github.com/BoundaryML/baml/blob/bd85ce9dee1463ff04d27efd20531013a4ff46c1/engine/language_client_go/pkg/rawobjects_constructors.go#L1-L35","documentation":"Wraps failures from serde.EncodeMapEntries when BamlRuntime.NewCollector encodes the 'name' kwarg (rawobjects_constructors.go:17). The collector constructor arguments could not be serialized into the CFFI form required by the native runtime.","triggerScenarios":"BamlRuntime.NewCollector(name) where serde.EncodeMapEntries fails on the kwargs map — e.g. empty/invalid name value or an encoder version mismatch.","commonSituations":"Passing an empty string name where the runtime requires a value; skewed serde/CFFI encoding between Go client and native runtime.","solutions":["Pass a non-empty, plain-string collector name.","Verify Go client and native runtime versions match.","Check the wrapped serde error for the failing map entry."],"exampleFix":"// before\nif name == \"\" { name = \"collector\" }\ncollector, err := rt.NewCollector(name)\n// after\nif strings.TrimSpace(name) == \"\" {\n\treturn nil, errors.New(\"collector name must be non-empty\")\n}\ncollector, err := rt.NewCollector(name)","handlingStrategy":"validation","validationCode":"if strings.TrimSpace(name) == \"\" { return errors.New(\"collector name must be a non-empty string\") }","typeGuard":null,"tryCatchPattern":"collector, err := rt.NewCollector(name)\nif err != nil {\n\treturn fmt.Errorf(\"failed to create collector: %w\", err)\n}","preventionTips":["Pass a plain, non-empty string name.","Keep the baml Go module and native runtime versions in sync.","Inspect the wrapped serde error to find the offending kwarg."],"tags":["go","serialization","collector","kwargs"],"backgroundTag":"invalid-argument-value","analyzedSha":"bd85ce9dee1463ff04d27efd20531013a4ff46c1","analyzedAt":"2026-09-12T03:38:25.718Z","contentChangedAt":"2026-09-12T03:38:25.718Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}