{"id":"3e337909c01153e2","repo":"docker/cli","slug":"invalid-type-t-for-external","errorCode":null,"errorMessage":"invalid type %T for external","messagePattern":"invalid type %T for external","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/compose/loader/loader.go","lineNumber":703,"sourceCode":"var transformMapStringString TransformerFunc = func(data any) (any, error) {\n\tswitch value := data.(type) {\n\tcase map[string]any:\n\t\treturn toMapStringString(value, false), nil\n\tcase map[string]string:\n\t\treturn value, nil\n\tdefault:\n\t\treturn data, fmt.Errorf(\"invalid type %T for map[string]string\", value)\n\t}\n}\n\nvar transformExternal TransformerFunc = func(data any) (any, error) {\n\tswitch value := data.(type) {\n\tcase bool:\n\t\treturn map[string]any{\"external\": value}, nil\n\tcase map[string]any:\n\t\treturn map[string]any{\"external\": true, \"name\": value[\"name\"]}, nil\n\tdefault:\n\t\treturn data, fmt.Errorf(\"invalid type %T for external\", value)\n\t}\n}\n\nvar transformServicePort TransformerFunc = func(data any) (any, error) {\n\tswitch entries := data.(type) {\n\tcase []any:\n\t\t// We process the list instead of individual items here.\n\t\t// The reason is that one entry might be mapped to multiple ServicePortConfig.\n\t\t// Therefore we take an input of a list and return an output of a list.\n\t\tports := []any{}\n\t\tfor _, entry := range entries {\n\t\t\tswitch value := entry.(type) {\n\t\t\tcase int:\n\t\t\t\tv, err := toServicePortConfigs(strconv.Itoa(value))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn data, err\n\t\t\t\t}\n\t\t\t\tports = append(ports, v...)","sourceCodeStart":685,"sourceCodeEnd":721,"githubUrl":"https://github.com/docker/cli/blob/e9452d6e785f6e365712b9d71bd7517591773c86/cli/compose/loader/loader.go#L685-L721","documentation":"Error \"invalid type %T for external\" thrown in docker/cli.","triggerScenarios":"Thrown at cli/compose/loader/loader.go:703 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"e9452d6e785f6e365712b9d71bd7517591773c86","analyzedAt":"2026-08-01T07:09:22.474Z","schemaVersion":2}