{"record":{"id":"0b5604b58303e7ca","repo":"nektos/act","slug":"unsupported-operation","errorCode":null,"errorMessage":"Unsupported Operation","messagePattern":"Unsupported Operation","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"critical","filePath":"pkg/container/docker_stub.go","lineNumber":17,"sourceCode":"//go:build WITHOUT_DOCKER || !(linux || darwin || windows || netbsd)\n\npackage container\n\nimport (\n\t\"context\"\n\t\"runtime\"\n\n\t\"github.com/moby/moby/api/types/system\"\n\t\"github.com/nektos/act/pkg/common\"\n\t\"github.com/pkg/errors\"\n)\n\n// ImageExistsLocally returns a boolean indicating if an image with the\n// requested name, tag and architecture exists in the local docker image store\nfunc ImageExistsLocally(ctx context.Context, imageName string, platform string) (bool, error) {\n\treturn false, errors.New(\"Unsupported Operation\")\n}\n\n// RemoveImage removes image from local store, the function is used to run different\n// container image architectures\nfunc RemoveImage(ctx context.Context, imageName string, force bool, pruneChildren bool) (bool, error) {\n\treturn false, errors.New(\"Unsupported Operation\")\n}\n\n// NewDockerBuildExecutor function to create a run executor for the container\nfunc NewDockerBuildExecutor(input NewDockerBuildExecutorInput) common.Executor {\n\treturn func(ctx context.Context) error {\n\t\treturn errors.New(\"Unsupported Operation\")\n\t}\n}\n\n// NewDockerPullExecutor function to create a run executor for the container\nfunc NewDockerPullExecutor(input NewDockerPullExecutorInput) common.Executor {\n\treturn func(ctx context.Context) error {","sourceCodeStart":1,"sourceCodeEnd":35,"githubUrl":"https://github.com/nektos/act/blob/4f411281417e88660bea1c1a1749aa71ae0bd60f/pkg/container/docker_stub.go#L1-L35","documentation":"ImageExistsLocally in docker_stub.go returns 'Unsupported Operation' because the binary was compiled without Docker support. The file's build tag is 'WITHOUT_DOCKER || !(linux || darwin || windows || netbsd)', so this code is active when act is built with the WITHOUT_DOCKER tag or for an OS outside the supported set. Every Docker-backed function becomes a stub, and this one reports that image inspection is unavailable in such builds.","triggerScenarios":"Calling container.ImageExistsLocally from code that imports a build of act compiled with -tags WITHOUT_DOCKER, or running an act binary produced for an unsupported GOOS. The function is invoked during job setup to decide whether an image pull is needed.","commonSituations":"Installing a distro-packaged act built with WITHOUT_DOCKER (common in limited environments); building act from source on an exotic platform; importing act as a library into a project whose CI compiles with the same tags; running act --list works but actual job execution fails because every container operation is stubbed.","solutions":["Install an official act release built for a supported OS (linux, darwin, windows, netbsd) without the WITHOUT_DOCKER tag.","If building from source, drop -tags WITHOUT_DOCKER from your build command.","If you intentionally need a Docker-less build, use act's host execution mode (-P ...=-self-hosted) which avoids the Docker code paths, or accept that image operations are unsupported.","When importing act as a library, ensure your build tags match the execution environment you target."],"exampleFix":"# before\ngo build -tags WITHOUT_DOCKER -o act ./cmd/act\n./act -j build   # ImageExistsLocally -> Unsupported Operation\n\n# after\ngo build -o act ./cmd/act\n./act -j build","handlingStrategy":"validation","validationCode":"// Detect a Docker-less build before calling image APIs\npackage main\n\nimport (\n\t\"runtime\"\n)\n\n//go:build WITHOUT_DOCKER || !(linux || darwin || windows || netbsd)\nconst dockerSupportCompiled = false\n\n// companion file with the inverse tag sets it to true; then:\nfunc checkImageSupport() error {\n\tif !dockerSupportCompiled {\n\t\treturn fmt.Errorf(\"act built without docker support; image lookups unavailable on %s\", runtime.GOOS)\n\t}\n\treturn nil\n}","typeGuard":null,"tryCatchPattern":"if ok, err := container.ImageExistsLocally(ctx, image, platform); err != nil {\n    if err.Error() == \"Unsupported Operation\" {\n        // Docker-less build: skip local-image optimization and let pull fail or use host mode\n        ok = false\n    } else {\n        return err\n    }\n}","preventionTips":["Install official act binaries for linux/darwin/windows/netbsd built without WITHOUT_DOCKER.","When embedding act as a library, keep your build tags aligned with the deployment environment.","Smoke-test 'act -j <id>' once after installing; Docker-less builds fail on any container operation."],"tags":["build-tags","docker","unsupported-platform","environment"],"backgroundTag":null,"analyzedSha":"4f411281417e88660bea1c1a1749aa71ae0bd60f","analyzedAt":"2026-08-15T09:19:46.307Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}