{"record":{"id":"2533b0538641b027","repo":"GoogleContainerTools/skaffold","slug":"found-multiple-status-check-timeouts-in-skaffold-y","errorCode":null,"errorMessage":"found multiple status check timeouts in skaffold.yaml (not supported in `skaffold apply`): %d, %d","messagePattern":"found multiple status check timeouts in skaffold\\.yaml \\(not supported in `skaffold apply`\\): (.+?), (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/runner/deployer.go","lineNumber":258,"sourceCode":"\tvar statusCheck *bool\n\tfor _, d := range deployCfgs {\n\t\tif d.KubeContext != \"\" {\n\t\t\tif kubeContext != \"\" && kubeContext != d.KubeContext {\n\t\t\t\treturn nil, errors.New(\"cannot resolve active Kubernetes context - multiple contexts configured in skaffold.yaml\")\n\t\t\t}\n\t\t\tkubeContext = d.KubeContext\n\t\t}\n\t\tif d.StatusCheck != nil {\n\t\t\tif statusCheck == nil {\n\t\t\t\tstatusCheck = d.StatusCheck\n\t\t\t} else if statusCheck != d.StatusCheck {\n\t\t\t\t// if we get conflicting values for status check from different skaffold configs, we turn status check off\n\t\t\t\tstatusCheck = util.Ptr(false)\n\t\t\t}\n\t\t}\n\t\tif d.StatusCheckDeadlineSeconds != 0 && d.StatusCheckDeadlineSeconds != int(status.DefaultStatusCheckDeadline.Seconds()) {\n\t\t\tif statusCheckTimeout != -1 && statusCheckTimeout != d.StatusCheckDeadlineSeconds {\n\t\t\t\treturn nil, fmt.Errorf(\"found multiple status check timeouts in skaffold.yaml (not supported in `skaffold apply`): %d, %d\", statusCheckTimeout, d.StatusCheckDeadlineSeconds)\n\t\t\t}\n\t\t\tstatusCheckTimeout = d.StatusCheckDeadlineSeconds\n\t\t}\n\t\tif d.Logs.Prefix != \"\" {\n\t\t\tif logPrefix != \"\" && logPrefix != d.Logs.Prefix {\n\t\t\t\treturn nil, fmt.Errorf(\"found multiple log prefixes in skaffold.yaml (not supported in `skaffold apply`): %s, %s\", logPrefix, d.Logs.Prefix)\n\t\t\t}\n\t\t\tlogPrefix = d.Logs.Prefix\n\t\t}\n\t\tvar currentDefaultNamespace *string\n\t\tvar currentKubectlFlags latest.KubectlFlags\n\t\tif d.KubectlDeploy != nil {\n\t\t\tcurrentDefaultNamespace = d.KubectlDeploy.DefaultNamespace\n\t\t\tcurrentKubectlFlags = d.KubectlDeploy.Flags\n\t\t}\n\t\tif kFlags == nil {\n\t\t\tkFlags = &currentKubectlFlags\n\t\t}","sourceCodeStart":240,"sourceCodeEnd":276,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/runner/deployer.go#L240-L276","documentation":"getDefaultDeployer merges settings across multiple skaffold configs when assembling the default (apply-style) deployer. If two configs declare different `statusCheckDeadlineSeconds` values — and neither equals the default — merging is ambiguous, so this error is thrown since `skaffold apply` cannot reconcile conflicting timeouts.","triggerScenarios":"Running `skaffold apply` with multiple skaffold configs (via `--filename`, config dependencies, or profiles) where `statusCheckDeadlineSeconds` differs between configs and differs from the built-in default.","commonSituations":"Team members adding different status-check timeouts to per-service configs that later get composed; config dependencies inherited from other repos with their own deadline settings.","solutions":["Set the same `statusCheckDeadlineSeconds` value in every composed skaffold config","Remove the field from all but one config so the others fall back to the shared default","Standardize the timeout in a shared base config that dependencies reference"],"exampleFix":"// config-a (before)\ndeploy:\n  statusCheckDeadlineSeconds: 300\n// config-b (before)\ndeploy:\n  statusCheckDeadlineSeconds: 60\n// after: use 300 in BOTH configs, or omit it in all but one","handlingStrategy":"validation","validationCode":"const deadlines = configs.map(c => c.deploy?.statusCheckDeadlineSeconds).filter(v => v !== undefined)\nif (new Set(deadlines).size > 1) {\n  throw new Error('conflicting statusCheckDeadlineSeconds: ' + deadlines.join(', '))\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Standardize statusCheckDeadlineSeconds in a shared base config","Run `skaffold diagnose` on composed configs before apply","Keep per-service configs free of global deploy settings"],"tags":["deploy","config","apply","status-check"],"backgroundTag":"conflicting-skaffold-configs","analyzedSha":"a1189de023efc32d4b8e11f395acc678aa555011","analyzedAt":"2026-09-05T12:09:27.064Z","contentChangedAt":"2026-09-05T12:09:27.064Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}