Skip to content

Troubleshooting

Start with the error shown in the UI or terminal. Most Veckl setup problems come from GitHub credentials, OAuth callback URLs, or missing repository files.

Run:

Terminal window
./scripts/verify-env.sh .env

If a value is reported as missing or a placeholder, replace it in .env. Values like <your-github-app-id> are placeholders and will fail validation.

Generate new keys:

Terminal window
./scripts/generate-session-keys.sh

Each session key must be base64 and decode to exactly 32 bytes.

For local development, the OAuth callback URL must be:

http://localhost:3000/auth/github/callback

Update the OAuth App settings and confirm GITHUB_OAUTH_REDIRECT_URL matches.

Check:

  • The GitHub App is installed on the target repository.
  • The app has contents read/write permission.
  • GITHUB_OWNER, GITHUB_REPO, and GITHUB_BRANCH point to the right location.
  • The branch exists.
  • The repository has been initialized from the Admin screen.

Use Admin > Test Connection to confirm repository access.

Open Admin and select Initialize Repository.

Veckl creates missing starter files but does not overwrite existing files.

Open Admin > Catalog.

For connected environments, use Preview then Commit Import.

For disconnected environments, upload a Veckl catalog export, raw OSCAL JSON catalog, or existing config/catalog.json.

Component Is Not Available When Creating a Test

Section titled “Component Is Not Available When Creating a Test”

Open Admin > Components and add the component. Component codes are case-sensitive and should be short uppercase identifiers.

Publish the draft first. Only active test cases can be executed.

Check:

  • The veckl-secrets Secret exists in the veckl namespace.
  • Required secret values are populated.
  • The private key is mounted where GITHUB_APP_PRIVATE_KEY_PATH points.
  • The backend can reach GitHub or GHES.
  • GHES private CA bundles are mounted and referenced by GITHUB_CA_BUNDLE_PATH.

In local development, make dev sets the frontend API base URL for you.

In Kubernetes, confirm the Ingress path routing and both services:

Terminal window
kubectl get svc -n veckl
kubectl get ingress -n veckl

Without Ingress, port-forward the frontend service and open http://localhost:3000.