7

I am developping an app in ASP.NET MVC5 using Zendesk_v2 (uploaded using a nuget package). I have admin rights for subdomain easynext.zendesk.com.

Here is my code for creating a ticket:

private static string requestUri = "https://easynext.zendesk.com/api/v2/tickets.json"; 
private static string _username = "gbalasel@easynext.be"; 
private static string _password = "MYPASSWORD"; 
private static ZendeskApi apiZendesk = new ZendeskApi(requestUri, _username, _password, "");

private void CréerTicketZendesk() { 
  var myTicket = apiZendesk.Tickets.CreateTicket(new Ticket() 
  { 
    Subject = "test ticket", 
    Priority = TicketPriorities.Low 
  });
}

This code sends me a 422 Unprocessable Entity error.

I have also made a test account for a client in Zendesk and the method works fine, the ticket is created in Zendesk and I also receive it in my email account.

j08691
  • 190,436
  • 28
  • 232
  • 252
user3405456
  • 71
  • 1
  • 3

5 Answers5

4

Status 422 is most likely caused by a semantic error on your part. In my experience, ZD can return 422 most often in two situations:

  1. When trying to PUT an update to a ticket whose status is closed. In that case, you need to create a new ticket or a follow-up ticket, if possible.
  2. Setting an invalid value on some attribute of the ticket object or sub-object of the ticket. This can be particularly tedious to debug, as the ZD response doesn't usually tell you which attribute has an invalid value. You should check all the integer values that you are setting on the ticket. E.g., I've been burned by using the Group IDs from my production Zendesk while developing on the Sandbox System (they most likely have entirely different IDs for everything, including custom fields, groups, users, etc.).

If you are creating new tickets via POST, be sure to check all the values you are setting, as per my second bullet point above.

Ken Verb
  • 41
  • 2
1

This telling you that you have not formed a request that it can handle; the destination script exists (otherwise you'd see a 404), the request is being handled (otherwise you'd get a 400 error) and it's been encoded correctly (or you'd get a 415 error) but the actual instruction can't be carried out.

take a look on this for more info. Error List

Illaya
  • 646
  • 6
  • 14
1

just to add to the solution if anyone encounters the same problem.

requester_id is mandatory while posting the ticket json.

A sample ticket json -

{
  "ticket": {   
    "subject": "My printer is on fire!",
    "requester_id": 123,
    "assignee_id": 456,
    "type": "incident",
    "subject": "Help, my printer is on fire!",
    "description": "The fire is very colorful.",
    "priority": "High",
    "status": "open",
    "custom_fields": [
      {
        "id":    111, // custom field ID
        "value": "500.23"
      }
    ]
  }
}

Thanks

Harsheet
  • 699
  • 9
  • 22
  • 1
    This helped me out, thanks! It's worth noting that if "requester_id" is set to null, the ticket will be created with the currently (in your script) authenticated API user as the requester, at least this seems to be the case for me. Also, "description" is mandatory as well, and it cannot be an empty string. – cjs1978 Oct 04 '17 at 07:49
1

Yeah I run today to the same problem and solved it. The problem is that you need a comment and body part inside the ticket structure.

So this is how it could look like (in PHP):

$ticket = [
    'group_id'       => '35135',
    'title'          => 'Title',
    'subject'        => 'Subject',
    'type'           => 'ticket',
    'comment'        => ['body' => 'Comment text.'],
    'priority'       => 'normal',
    'ticket_form_id' => '454524',
    'custom_fields'  => [
        '51325351' => 'test',
    ],
];

Take a look on here: https://developer.zendesk.com/rest_api/docs/core/tickets

Kingalione
  • 3,913
  • 5
  • 39
  • 78
0

I had an issue with the Zendesk API throwing a 422 when I was attempting to create a ticket. All parameters were correct, the problem was that the assignee for which the ticket was created for did not belong to the group.

I found this error by looking at the request response by using FIDDLER.

Bynho
  • 450
  • 5
  • 14