dapr/dapr · critical
failed to load components: %s
Error message
failed to load components: %s
What it means
loadComponents failed: either the loader errored while reading manifests (disk: unreadable/invalid YAML in the resources path; kubernetes: operator component stream error) or a component's blocking init failed without spec.ignoreErrors (surfaced as the nested 'process component ... error' from initComponentBlocking). Non-nil here terminates daprd via the runner manager.
Source
Thrown at pkg/runtime/runtime.go:740
err = a.initNameResolution(ctx)
if err != nil {
log.Error(err.Error())
}
// Start proxy
a.initProxy()
a.initDirectMessaging(a.nameResolver)
a.initPluggableComponents(ctx)
if err = a.appendBuiltinSecretStore(ctx); err != nil {
return fmt.Errorf("failed to init built-in secret store: %s", err)
}
err = a.loadComponents(ctx)
if err != nil {
return fmt.Errorf("failed to load components: %s", err)
}
if err = a.flushOutstandingComponents(ctx); err != nil {
return err
}
err = a.loadHTTPEndpoints(ctx)
if err != nil {
log.Warnf("failed to load HTTP endpoints: %s", err)
}
if err = a.flushOutstandingHTTPEndpoints(ctx); err != nil {
return err
}
err = a.loadDeclarativeSubscriptions(ctx)
if err != nil {
return fmt.Errorf("failed to load declarative subscriptions: %s", err)View on GitHub (pinned to 74ad417027)
Solutions
- Check the nested error text: 'process component X error' points to Init, otherwise suspect manifest loading
- Run `dapr components` / `kubectl get components -o yaml` and lint every manifest (kind: Component, apiVersion dapr.io/v1alpha1, valid type/version)
- Fix the underlying Init cause (credentials, host, metadata) or set spec.ignoreErrors: true on optional components
- Confirm the resources path contains only component YAMLs and is readable by the daprd user
Example fix
# before
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: statestore
spec:
type: state.redis
metadata:
- name: redisHost
# after
spec:
type: state.redis
version: v1
metadata:
- name: redisHost
value: redis:6379 Defensive patterns
Strategy: validation
Validate before calling
func validateComponentManifest(c compapi.Component) error {
if c.APIVersion != "dapr.io/v1alpha1" || c.Kind != "Component" { return fmt.Errorf("not a Component manifest") }
if !strings.Contains(c.Spec.Type, ".") { return fmt.Errorf("type must be <category>.<impl>") }
if c.Spec.Version == "" { return fmt.Errorf("version is required") }
return nil
} Type guard
func isComponentManifest(obj runtime.Object) bool {
_, ok := obj.(*compapi.Component)
return ok
} Try / catch
Let startup fail fast (the runner manager shuts daprd down); in the deploy pipeline, catch the exit, parse the nested 'process component X error' to identify the component, fix its metadata/credentials, and redeploy. Do not blanket-ignore - a missing state store breaks the app anyway.
Prevention
- Lint all manifests in resources-path/ with schema validation before deploy
- Ensure backing services and secrets exist before rolling the app
- Reserve spec.ignoreErrors: true for components the app can run without
When it happens
Trigger: Standalone: malformed YAML, wrong apiVersion/kind, or a directory in --resources-path containing a broken file. Kubernetes: operator watch/stream failures or a component whose Init fails (bad credentials, unreachable backing service) with ignoreErrors unset.
Common situations: Invalid component manifests pushed in CI; secrets referenced but absent; backing services unreachable at pod start; typo'd metadata crashing Init; resource quota or RBAC issues breaking the operator client.
Related errors
- process component %s error: %s
- process component %s error: %s
- process MCPServer %s error: %s
- couldn't find binding %s
- incorrect type %s
AI-assisted analysis of dapr/dapr@74ad417027 (2026-08-16).
Data as JSON: /api/errors/c020a61814c2b197.
Report an issue: GitHub.