{"record":{"id":"a8088010ff5dff56","repo":"wagoodman/dive","slug":"unsupported-platform","errorCode":null,"errorMessage":"unsupported platform","messagePattern":"unsupported platform","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"dive/image/podman/resolver_unsupported.go","lineNumber":24,"sourceCode":"import (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/wagoodman/dive/dive/image\"\n)\n\ntype resolver struct{}\n\nfunc NewResolverFromEngine() *resolver {\n\treturn &resolver{}\n}\n\n// Name returns the name of the resolver to display to the user.\nfunc (r *resolver) Name() string {\n\treturn \"podman\"\n}\nfunc (r *resolver) Build(ctx context.Context, args []string) (*image.Image, error) {\n\treturn nil, fmt.Errorf(\"unsupported platform\")\n}\n\nfunc (r *resolver) Fetch(ctx context.Context, id string) (*image.Image, error) {\n\treturn nil, fmt.Errorf(\"unsupported platform\")\n}\n\nfunc (r *resolver) Extract(ctx context.Context, id string, l string, p string) error {\n\treturn fmt.Errorf(\"unsupported platform\")\n}\n","sourceCodeStart":6,"sourceCodeEnd":34,"githubUrl":"https://github.com/wagoodman/dive/blob/d6c691947f8fda635c952a17ee3b7555379d58f0/dive/image/podman/resolver_unsupported.go#L6-L34","documentation":"This is the Windows build of dive's podman resolver (resolver_unsupported.go, compiled only where the real podman resolver is not built). resolver.Build() is a stub that unconditionally returns 'unsupported platform' — the podman engine integration cannot build images on this platform build.","triggerScenarios":"Calling podman.NewResolverFromEngine().Build(...) on a platform where dive was compiled without podman support (i.e. the unsupported stub file is in the build). Practically: Windows binaries, or any build lacking the unix build tag used by the real resolver_cli/resolver.","commonSituations":"Running the stock Windows dive.exe with 'engine: podman' in .dive.yaml or DIVE_ENGINE=podman; library consumers compiling dive's podman package on Windows and calling Build; CI on windows-latest runners selecting the podman source.","solutions":["Use the docker source instead on this platform: 'dive --source docker <image>' (docker resolver is supported on Windows against a docker daemon)","Run dive inside WSL2 or a Linux container where the fully-supported podman resolver is compiled in","If embedding dive, detect the platform before selecting the podman resolver and fall back to the docker/archive resolver","Track/upgrade to a dive version that ships native podman support for your platform if one becomes available"],"exampleFix":"# before (windows shell)\nset DIVE_ENGINE=podman\ndive myimg:latest   # Build/Fetch -> unsupported platform\n\n# after\nset DIVE_ENGINE=docker\ndive myimg:latest\n# or run under WSL2 for podman support","handlingStrategy":"validation","validationCode":"// Choose a resolver that exists on this platform before calling Build.\nimport \"runtime\"\n\nfunc pickBuildResolver() image.Resolver {\n    if runtime.GOOS == \"windows\" {\n        return docker.NewResolverFromEngine() // podman Build unsupported on this build\n    }\n    return podman.NewResolverFromEngine()\n}","typeGuard":"// Narrow to the podman resolver only on supported platforms.\nfunc podmanResolverSupported() bool { return runtime.GOOS != \"windows\" }","tryCatchPattern":"if _, err := res.Build(ctx, args); err != nil && err.Error() == \"unsupported platform\" {\n    // deterministic stub error: switch to the docker resolver; do not retry\n}","preventionTips":["Pin 'engine: docker' in .dive.yaml on Windows hosts","Run podman-based flows inside WSL2/Linux containers","Treat 'unsupported platform' as a build-configuration fact, not a transient failure — never retry it"],"tags":["platform","windows","podman","build-tag","dive"],"backgroundTag":null,"analyzedSha":"d6c691947f8fda635c952a17ee3b7555379d58f0","analyzedAt":"2026-08-15T09:42:35.293Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}