Hub Resolver Cannot Resolve a Resource
TOC
Problem DescriptionError ManifestationRoot Cause AnalysisTroubleshooting1. Verify TektonConfig2. Verify the reconciled resolver ConfigMap3. Check resolver Pod environment4. Verify shim Service and repository health5. Verify the exact package requested by the resolver6. Check version formatting7. Check resolver logsRelated ContentProblem Description
A TaskRun or PipelineRun references a remote resource with
resolver: hub, but Tekton cannot resolve the Task, Pipeline, or
StepAction from artifacthub-shim.
Error Manifestation
Common symptoms include:
- The run stays in a resolution failure state.
- No workload Pod is created.
- The run status or resolver logs mention a missing package or version.
- The resolver still tries to use the default upstream Artifact Hub endpoint.
Example hub reference:
Root Cause Analysis
The usual causes are:
- Hub resolver is not enabled.
TektonConfigdoes not set the hub resolver type toartifact.- The reconciled
artifact-hub-apidoes not point toartifacthub-shim. - The resolver Pod has not picked up the updated ConfigMap.
- The
catalog,kind,name, orversionparameter does not match a shim package. - The target repository source is invalid, degraded without a last-good shard, or disabled.
Troubleshooting
The commands below derive the Tekton resolver namespace from
TektonConfig.spec.targetNamespace and assume artifacthub-shim runs in
artifacthub-shim-system. Replace the shim namespace if your installation uses
a different value.
1. Verify TektonConfig
Check the hub resolver settings in TektonConfig:
The spec.pipeline section should include:
If default-type is not artifact, add type: artifact to each hub
reference or update the default.
2. Verify the reconciled resolver ConfigMap
The operator reconciles TektonConfig.spec.pipeline.hub-resolver-config into
the hubresolver-config ConfigMap.
Expected values:
Also check the resolver feature flag:
Expected output:
3. Check resolver Pod environment
Find the remote resolver Pod:
Check whether the resolver Deployment consumes hubresolver-config:
If the ConfigMap is correct but the resolver still uses old values, restart the resolver Pod so it reads the updated environment variables:
If your installation uses different resolver labels, delete the specific
remote resolver Pod returned by kubectl get pods.
4. Verify shim Service and repository health
Check that the shim Deployment and Service are available:
Then inspect the repository ConfigMap Events for the catalog used by the hub reference:
RepositorySourceReady means the catalog is visible to resolver clients.
RepositorySourceInvalid or RepositorySourceDegraded means the resolver may
fail even when the shim API pod itself is healthy.
5. Verify the exact package requested by the resolver
Compare the hub resolver params with the repository source and catalog content:
catalogmust matchrepository.yaml.gitRepositories[].repositories[].name.kindmust match the repository source kind.namemust match the package directory name under the configuredpath.versionmust match a version directory or a supported semver-compatible selector.
For built-in catalog resources, use catalog for Tasks and
catalog-pipelines for Pipelines. Historical Pipeline references that still
use catalog are supported by a shim catalog alias, but new references should
use catalog-pipelines.
For migrated custom Tekton Hub catalogs, the operator may create repositories
such as team-a, team-a-pipelines, and team-a-stepactions, with a
legacy alias such as team-a pointing to the Pipeline repository for Pipeline
lookups. API responses and UI labels still return the canonical repository name.
If the resolver fails after migration, check the repository ConfigMap for
legacyCatalogAliases and verify that the requested kind matches the alias
scope.
If the source is Ready but the package is still missing, check disabled package rules in the repository ConfigMap and chart values.
6. Check version formatting
Quote numeric-looking versions in YAML:
artifacthub-shim supports normalized semver lookup. For example, a catalog
directory named 0.1 can be returned as 0.1.0 for resolver compatibility.
If the resolver uses a version constraint, verify that the catalog contains a
matching non-prerelease version directory.
7. Check resolver logs
If your resolver Deployment has a different name, use:
Then query logs from the matching resolver Deployment or Pod.