{"id":"82e459df68365d37","repo":"docker/cli","slug":"invalid-availability-q-only-active-pause-and-dr-82e459","errorCode":null,"errorMessage":"invalid availability %q, only active, pause and drain are supported","messagePattern":"invalid availability %q, only active, pause and drain are supported","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/command/swarm/join.go","lineNumber":65,"sourceCode":"\tflags.Var(&opts.listenAddr, flagListenAddr, `Listen address (format: \"<ip|interface>[:port]\")`)\n\tflags.StringVar(&opts.advertiseAddr, flagAdvertiseAddr, \"\", `Advertised address (format: \"<ip|interface>[:port]\")`)\n\tflags.StringVar(&opts.dataPathAddr, flagDataPathAddr, \"\", `Address or interface to use for data path traffic (format: \"<ip|interface>\")`)\n\tflags.SetAnnotation(flagDataPathAddr, \"version\", []string{\"1.31\"})\n\tflags.StringVar(&opts.token, flagToken, \"\", \"Token for entry into the swarm\")\n\tflags.StringVar(&opts.availability, flagAvailability, \"active\", `Availability of the node (\"active\", \"pause\", \"drain\")`)\n\treturn cmd\n}\n\nfunc runJoin(ctx context.Context, dockerCLI command.Cli, flags *pflag.FlagSet, opts joinOptions) error {\n\tapiClient := dockerCLI.Client()\n\n\tvar availability swarm.NodeAvailability\n\tif flags.Changed(flagAvailability) {\n\t\tswitch a := swarm.NodeAvailability(strings.ToLower(opts.availability)); a {\n\t\tcase swarm.NodeAvailabilityActive, swarm.NodeAvailabilityPause, swarm.NodeAvailabilityDrain:\n\t\t\tavailability = a\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"invalid availability %q, only active, pause and drain are supported\", opts.availability)\n\t\t}\n\t}\n\n\t_, err := apiClient.SwarmJoin(ctx, client.SwarmJoinOptions{\n\t\tJoinToken:     opts.token,\n\t\tListenAddr:    opts.listenAddr.String(),\n\t\tAdvertiseAddr: opts.advertiseAddr,\n\t\tDataPathAddr:  opts.dataPathAddr,\n\t\tRemoteAddrs:   []string{opts.remote},\n\t\tAvailability:  availability,\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tres, err := apiClient.Info(ctx, client.InfoOptions{})\n\tif err != nil {\n\t\treturn err","sourceCodeStart":47,"sourceCodeEnd":83,"githubUrl":"https://github.com/docker/cli/blob/e9452d6e785f6e365712b9d71bd7517591773c86/cli/command/swarm/join.go#L47-L83","documentation":"Error \"invalid availability %q, only active, pause and drain are supported\" thrown in docker/cli.","triggerScenarios":"Thrown at cli/command/swarm/join.go:65 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}