After creating a ScheduledTrigger, no PipelineRun (or other resources inside the TriggerTemplate) appears at the expected time.
Common reasons include:
timeZone is invalid, or the next tick has not yet occurred in the expected region.TriggerTemplate (or inline template content) cannot be resolved, often because of a wrong name/namespace or missing permissions.For a field-by-field explanation of the ScheduledTrigger spec, see the ScheduledTrigger API and Important Parameter Explanations.
Always start with:
The Events section shows warnings such as UnknownTimeZone, UnparseableSchedule, InvalidSchedule, UnknownTriggerTemplate, or FailedCreate. Use those event types to pick the right fix from the sections below.
Follow these checks to narrow down the issue:
kubectl get scheduledtrigger <name> -n <namespace> -o jsonpath='{.spec.schedule}' and confirm it is the intended cron expression (minute hour day-of-month month day-of-week).spec.timeZone is set, confirm that it is a valid time zone (for example Asia/Shanghai). Typos cause the controller to emit UnknownTimeZone warnings and skip executions. When cron syntax is wrong the controller creates UnparseableSchedule or InvalidSchedule events; correct the expression and reapply.kubectl get scheduledtrigger <name> -n <namespace> -o jsonpath='{.status.lastScheduleTime}' with the current time to verify whether the most recent run is actually overdue. Remember that cron expressions are evaluated in the chosen time zone, not the viewer's local clock.spec.triggerTemplate.ref, ensure the referenced TriggerTemplate exists in the same namespace: kubectl get triggertemplate <ref> -n <namespace>.kubectl describe scheduledtrigger <name> and look for validation errors that mention missing fields inside triggerTemplate.$(context.datetime) are only used in spec.params. The rendered template must reference them via $(tt.params.<name>); using context placeholders elsewhere causes rendering to fail and surfaces as UnknownTriggerTemplate warnings.kubectl describe scheduledtrigger <name> -n <namespace> and review the Events section. Messages such as FailedCreate, ResourceApplyFailed, or RBAC forbidden errors indicate the controller tried to fire but was blocked.FailedCreate warnings typically mean Tekton rejected the rendered resource. Inspect the message, adjust the template, and reapply the ScheduledTrigger.PipelineRun or TaskRun directly from the TriggerTemplate content. Manually replace every $(tt.params.<name>) placeholder with a concrete value, apply the resource, and confirm whether it creates successfully.When debugging, temporarily change spec.schedule to run every minute (for example */1 * * * *) to confirm whether executions start after adjustments.
Keep the ScheduledTrigger and TriggerTemplate in the same namespace to avoid confusion with cross-namespace references.
Use the tekton.alaudadevops.io/scheduled-trigger-name label to list all resources created by a ScheduledTrigger. For example:
Replace <scheduled-trigger-name> with the name of your resource to see every PipelineRun or TaskRun emitted by that ScheduledTrigger.