# 500 Server Error When Updating a Custom Field

This article examines an error that might occur when you update a custom field in an issue using YouTrack REST API.

You can face this error while making requests to different endpoints. This topic describes the most common scenario when you can receive this error message.

## Error Message

```
<class 'requests.exceptions.HTTPError'> - 500 Server Error:
Internal Server Error for url: https://example.myjetbrains.com/youtrack/api/issues/YT-6966
error: server_error
error_description: class jetbrains.charisma.customfields.complex.state.
StateProjectCustomFieldMegaProxy cannot be cast to class jetbrains.charisma.persistence.
customfields.IssueCustomField (jetbrains.charisma.customfields.complex.state.
StateProjectCustomFieldMegaProxy and jetbrains.charisma.persistence.customfields.
IssueCustomField are in unnamed module of loader org.eclipse.jetty.webapp.
WebAppClassLoader @7ec9161f)
```

## Request Details

Here are the details about a sample request that might result in this error.

| Attribute | Value |
| --- | --- |
| Request method | POST |
| Endpoint | `/api/issues/issueID` |
| Request body |     ```JSON {     "customFields":[         {             "name": "State",             "$type": "StateProjectCustomField",             "value":             {                 "name": "Open"             }         }     ] } ```    |
| HTTP response code | 500 |

## Troubleshooting

Here are some possible causes and suggestions on how to overcome this error and update the custom field in the issue.

### Cause

Your request tried to update a custom field in an issue, but the request body referred to a custom field in a project.

### Solution

Pass the corresponding issue custom field type in the request body.

The error message indicates that in this particular request, YouTrack expects an entity of the `IssueCustomField` type instead of `StateProjectCustomField`. Since [IssueCustomField](api-entity-IssueCustomField.html) is an abstract ancestor for all custom fields in issues, you need to use a type of one of its descendants in the request body. In our case, it's `StateIssueCustomField`.

Here's the updated request body:

```JSON
{
  "customFields":[
    {
      "name": "State",
      "$type": "StateIssueCustomField",
      "value":
        {
          "name": "Open"
        }
     }
  ]
}
```

For details about custom field hierarchy in the YouTrack REST API, see [Custom Fields in REST API](api-concept-custom-fields.html).

### Solution for State Machine Fields

If the State field in the target project is regulated by a state machine, use `StateMachineIssueCustomField` instead of `StateIssueCustomField`.

In this case, the error message can contain the following text:

```
StateIssueCustomFieldMegaProxy cannot be cast to class
jetbrains.charisma.workflow.statemachine.StateMachineIssueCustomField
```

Pass the state machine field type and include the event data in the request body:

```JSON
{
    "customFields": [
        {
            "event": {
                "presentation": "In Progress",
                "id": "92-828",
                "$type": "StateBundleElement"
            },
            "name": "State",
            "id": "108-258",
            "$type": "StateMachineIssueCustomField"
        }
    ]
}
```

