GoogleContainerTools/skaffold · error
CONFIG_MULTI_IMPORT_PROFILE_CONFLICT_ERR
CONFIG_MULTI_IMPORT_PROFILE_CONFLICT_ERR
Error message
config %q defined in file %q imported multiple times with different set of profiles
What it means
ConfigProfileConflictErr fires when the same named config (a config dependency) is imported more than once but with different profile activations, so the imported config would resolve inconsistently. Code CONFIG_MULTI_IMPORT_PROFILE_CONFLICT_ERR, suggesting checking dependency profile selection.
Source
Thrown at pkg/skaffold/schema/errors/errors.go:176
func ConfigProfilesNotMatchedErr(profiles []string) error {
msg := fmt.Sprintf("profile selection %q did not match those defined in any configurations", profiles)
return sErrors.NewError(errors.New(msg),
&proto.ActionableErr{
Message: msg,
ErrCode: proto.StatusCode_CONFIG_PROFILES_NOT_FOUND_ERR,
Suggestions: []*proto.Suggestion{
{
SuggestionCode: proto.SuggestionCode_CONFIG_CHECK_PROFILE_SELECTION,
Action: `Check that values specified in the "--profile" or "-p" flags are valid profile names`,
},
},
})
}
// ConfigProfileConflictErr specifies that the same config is imported with different set of profiles.
func ConfigProfileConflictErr(config, file string) error {
msg := fmt.Sprintf("config %q defined in file %q imported multiple times with different set of profiles", config, file)
return sErrors.NewError(errors.New(msg),
&proto.ActionableErr{
Message: msg,
ErrCode: proto.StatusCode_CONFIG_MULTI_IMPORT_PROFILE_CONFLICT_ERR,
Suggestions: []*proto.Suggestion{
{
SuggestionCode: proto.SuggestionCode_CONFIG_CHECK_DEPENDENCY_PROFILES_SELECTION,
Action: "Check that all occurrences of the specified config dependency use the same set of profiles; refer to the documentation on how to author config dependencies: https://skaffold.dev/docs/design/config/#configuration-dependencies",
},
},
})
}
// ConfigUnknownAPIVersionErr specifies that the config API version doesn't match any known versions.
func ConfigUnknownAPIVersionErr(version string) error {
msg := fmt.Sprintf("unknown skaffold config API version %q", version)
return sErrors.NewError(errors.New(msg),
&proto.ActionableErr{
Message: msg,View on GitHub (pinned to a1189de023)
Solutions
- Align the profile selection for the shared dependency across all `requires:` declarations that import it.
- Remove the profile activation from the dependency and select profiles only at the top-level invocation.
- Duplicate the dependency config under distinct names if genuinely divergent profile sets are needed.
Example fix
// before: service-a/skaffold.yaml
requires:
- path: ../base
profiles: [staging]
// service-b/skaffold.yaml
requires:
- path: ../base
profiles: [prod]
// after: both use the same profiles
requires:
- path: ../base
profiles: [staging] Defensive patterns
Strategy: validation
Validate before calling
# ensure every `requires:` on the same dependency activates the same profiles grep -A3 'requires:' */skaffold.yaml | grep -B1 -A2 'path: ../base'
Prevention
- Centralize dependency profile activation: select profiles only at the top-level command, not per import.
- Standardize one profile set for shared base configs across all consuming modules.
- Review `requires:` blocks in code review whenever a new module is added to the monorepo.
When it happens
Trigger: Multiple configs declare dependencies (`requires:`) on the same config name but activate different profiles of it; during dependency resolution the conflicting profile sets are detected.
Common situations: In multi-module monorepos, two services both require a shared base config but one activates `profiles: [staging]` while the other activates `profiles: [prod]` for the same dependency.
Related errors
- CONFIG_PROFILES_NOT_FOUND_ERR
- bucket name is empty
- INSPECT_PROFILE_NOT_FOUND_ERR
- cannot resolve active Kubernetes context - multiple contexts
- CONFIG_BAD_FILTER_ERR
AI-assisted analysis of GoogleContainerTools/skaffold@a1189de023 (2026-09-05).
Data as JSON: /api/errors/d3a78d002e4975cd.
Report an issue: GitHub.