{"record":{"id":"d1805a6b024a9c16","repo":"dagger/dagger","slug":"method-s-not-supported-by-the-client","errorCode":null,"errorMessage":"method %s not supported by the client","messagePattern":"method (.+?) not supported by the client","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"engine/engineutil/filesync.go","lineNumber":196,"sourceCode":"\tif err != nil {\n\t\treturn err\n\t}\n\tdefer cancel(errors.New(\"local dir export done\"))\n\n\toutputFS, err := fsutil.NewFS(srcPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcaller, err := c.GetSessionCaller(ctx)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to get requester session attachables: %w\", err)\n\t}\n\n\tdestPath = path.Clean(destPath)\n\tmethod := \"/moby.filesync.v1.FileSend/DiffCopy\"\n\tif !caller.Supports(method) {\n\t\treturn fmt.Errorf(\"method %s not supported by the client\", method)\n\t}\n\n\tctx = engine.LocalExportOpts{\n\t\tPath:        destPath,\n\t\tMerge:       merge,\n\t\tRemovePaths: removePaths,\n\t}.AppendToOutgoingContext(ctx)\n\n\tdiffCopyClient, err := filesync.NewFileSendClient(caller.Conn()).DiffCopy(ctx)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to create diff copy client: %w\", err)\n\t}\n\tdefer diffCopyClient.CloseSend()\n\n\t// Encapsulated like the resolver's \"pulling\" span: hidden unless it\n\t// fails, surfacing as a labeled progress row with a climbing byte count\n\t// (the receiver only requests changed files, so the total is unknown\n\t// and an up-to-date destination transfers nothing).","sourceCodeStart":178,"sourceCodeEnd":214,"githubUrl":"https://github.com/dagger/dagger/blob/82ba2681dbe30d3547a1dc50ea495900ab5b6047/engine/engineutil/filesync.go#L178-L214","documentation":"Returned by LocalDirExport when the resolved session caller does not advertise support for the /moby.filesync.v1.FileSend/DiffCopy gRPC method (engine/engineutil/filesync.go:196). The connected endpoint (the host-side session agent) is too old or is not a Dagger session that implements file export, so the export is refused before any transfer starts.","triggerScenarios":"Exporting to a host whose session attachables were registered by an older Dagger CLI lacking FileSend/DiffCopy; connecting to a non-Dagger or partially-initialized session endpoint; version skew where the SDK requires a method the remote session doesn't expose.","commonSituations":"Mixing an up-to-date SDK with an old dagger CLI on the host; custom/embedded tooling that registers only a subset of buildkit session attachables; CI runners with a cached, outdated dagger binary.","solutions":["Upgrade the Dagger CLI/engine on the host to a version that supports FileSend/DiffCopy (match your SDK version).","Confirm you are connected to a real Dagger session, not a custom buildkit session lacking the filesync FileSend attachable.","Pin SDK and CLI versions together; re-run `dagger version` on both sides to check for skew.","If embedding, register the moby.filesync.v1.FileSend service in your session attachables."],"exampleFix":"// before (old CLI)\n$ dagger version\n0.9.4  # lacks FileSend/DiffCopy\n// after\n$ brew upgrade dagger  # or use the installer\n$ dagger version\nlatest  # supports /moby.filesync.v1.FileSend/DiffCopy","handlingStrategy":"validation","validationCode":"// fail fast with a clear message when the CLI is too old\nout, _ := exec.Command(\"dagger\", \"version\").Output()\nif !strings.Contains(string(out), \"0.\") { /* parse & compare against min required version */ }","typeGuard":"func isUnsupportedMethodErr(err error) bool {\n    return err != nil && strings.Contains(err.Error(), \"not supported by the client\")\n}","tryCatchPattern":"err := dir.Export(ctx, destPath)\nif isUnsupportedMethodErr(err) {\n    return fmt.Errorf(\"dagger CLI too old; upgrade to >= required version: %w\", err)\n}","preventionTips":["Upgrade and match dagger CLI with SDK versions","Run `dagger version` in CI before running pipelines","Register FileSend attachables if embedding a custom session"],"tags":["grpc","capability","version-skew","export"],"backgroundTag":"grpc-method-not-supported","analyzedSha":"82ba2681dbe30d3547a1dc50ea495900ab5b6047","analyzedAt":"2026-09-05T07:21:37.930Z","contentChangedAt":"2026-09-05T07:21:37.930Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}