Now I’m trying to change the status of an existing ticket but keep getting this error message: {"errorMessages":[],"errors":{"status":"Field 'status' cannot be set. It is not on the appropriate screen, or unknown."}}
you cant change status directly with PUT, jira needs you to go through transitions. check /rest/api/2/issue/PROJ-123/transitions to see which ones are availabe, then use POST with the transition id to update it.
The error you’re encountering is because JIRA treats status changes as workflow transitions rather than direct field updates. When I first ran into this same issue, I made the mistake of trying to modify status like any other field. The solution is to use the transitions endpoint instead of trying to PUT the status field directly. First, make a GET request to /rest/api/2/issue/PROJ-123/transitions to retrieve available transitions for your ticket. This will return transition IDs and names. Then use POST to /rest/api/2/issue/PROJ-123/transitions with a payload containing the transition ID you want to execute. Your JSON should look like {“transition”:{“id”:“31”}} where 31 is the actual transition ID from your workflow. This approach respects JIRA’s workflow rules and permissions, which is why direct status modification is blocked.
Status updates in JIRA require going through the workflow engine, not direct field modification. I’ve been working with JIRA REST API for years and this catches everyone initially. The workflow system controls which status transitions are valid based on your current state and user permissions. Use GET on /rest/api/2/issue/PROJ-123/transitions first to see what transitions are available from the current status. The response will show transition names like “Start Progress” or “Resolve Issue” along with their numeric IDs. Then POST to the same transitions endpoint with payload like {"transition":{"id":"4"}} where 4 is your desired transition ID. Some transitions might require additional fields like resolution or comments, which you can include in the same POST. This workflow-based approach ensures data integrity and respects your project’s business rules.