Grafana "dashboard provisioning" failed in CI
Grafana provisioning reads dashboard files from disk on startup; when a file is invalid JSON, references a missing folder, or the provisioning path is wrong, Grafana logs "failed to load dashboard" and the dashboard never appears.
What this error means
Grafana logs show "failed to load dashboard from ..." or "Dashboard provisioning error", and the expected dashboard is missing after a provisioned deploy.
logger=provisioning.dashboard type=file name=default
level=error msg="failed to load dashboard from " file=/etc/grafana/provisioning/dashboards/app.json
error="invalid character '}' looking for beginning of object key string"Common causes
Invalid dashboard JSON
A trailing comma or malformed object in the exported dashboard JSON makes Grafana fail to parse and load it.
A wrong provisioning path or missing folder
The provider path points at a directory that does not exist in the container, or the target folder is not created, so nothing loads.
How to fix it
Validate the JSON and the provider path
- Lint each dashboard JSON file so parse errors are caught in CI.
- Confirm the provider
pathmatches where the files are mounted. - Restart Grafana and check the provisioning logs are clean.
for f in provisioning/dashboards/*.json; do
jq empty "$f" || { echo "invalid JSON: $f"; exit 1; }
donePoint the provider at the mounted directory
Ensure the dashboards provider path is the same directory the dashboards are copied into.
apiVersion: 1
providers:
- name: default
folder: App
type: file
options:
path: /etc/grafana/provisioning/dashboardsHow to prevent it
- Lint dashboard JSON in CI before deploying.
- Keep the provider path aligned with where files are mounted.
- Review provisioning logs after each Grafana restart.