Skip to content

Troubleshoot MergeLoom ticket-to-code jobs

Most first-run ticket-to-code issues fall into five buckets:

  • worker cannot enroll
  • provider is not ready
  • integration cannot connect
  • ticket does not match intake
  • PR or MR cannot be created

Check the right UI first

Use https://controller.mergeloom.ai for integrations, workflow rules, ticket intake, job audit state, and PR/MR output. Use the local worker UI at http://127.0.0.1:8010/ for provider readiness, worker-local logs, run streams, and local trace detail.

MergeLoom local worker UI run list showing worker-side execution status.
Local worker UI: use worker runs when the controller shows a job but you need the worker-side execution status and trace detail.

Check:

  • JCA_WORKER_CONTROL_PLANE_URL is https://controller.mergeloom.ai
  • JCA_WORKER_TENANT_SLUG
  • JCA_WORKER_ENROLLMENT_TOKEN
  • worker logs
  • control plane logs
  • network access from worker to control plane

Docker logs:

Terminal window
docker compose logs -f

Check:

  • provider card readiness state in worker UI
  • login status
  • API key or bearer token
  • model name
  • base URL
  • network access from worker container or pod
  • OpenAI-compatible tool-calling self-test result

For CLI providers, remember that auth happens inside the worker container, not on your host shell.

Check callback URLs:

https://controller.mergeloom.ai/api/integrations/jira/callback
https://controller.mergeloom.ai/api/integrations/monday/callback
https://controller.mergeloom.ai/api/integrations/github/callback
https://controller.mergeloom.ai/api/integrations/gitlab/callback
https://controller.mergeloom.ai/api/integrations/azure-boards/callback

Check the OAuth app callback URL matches the MergeLoom controller URL used in the browser: https://controller.mergeloom.ai.

Check:

  • intake source is correct
  • intake query is correct
  • ticket has the managed label or tag
  • ticket is in the configured ready state
  • ticket is assigned to a MergeLoom workspace user when required
  • repo routing label is present if multiple work repos are enabled
  • Scheduled intake is turned on in Global workflow settings

If the repository route does not match, MergeLoom comments on the ticket and records a routing error in the controller activity log. Use the repository catalog routing label exactly as shown, for example repo-api.

Default managed label:

mergeloom
Jira ticket with MergeLoom managed label and repository routing label.
Work tracker: confirm the ticket has the managed intake label and, when needed, the repository routing label before expecting intake to pick it up.

Check:

  • repository is enabled as a writable work repo
  • GitHub App or GitLab OAuth permissions allow branch push and PR/MR creation
  • default branch exists
  • validation commands pass
  • worker can push to the repository
  • branch protection allows the expected review flow

A blocked job is usually a useful safety signal.

Common reasons:

  • ticket does not contain enough information
  • provider failed
  • validation command failed
  • repository setup command failed
  • permission denied pushing branch
  • diff exceeded configured policy

Add a comment with clearer instructions, move the ticket back to the ready state, and let MergeLoom pick it up again.