> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/infra-controller/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/infra-controller/_mcp/server.

# Reset Machine Chassis

PATCH https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/machine/{machineId}/chassis/{chassisId}/reset

Queue a case-sensitive Redfish chassis reset on an unassigned Machine owned by the Provider Admin's Org.
The Machine must be present on a Registered Site and be a managed host in the `Ready` lifecycle state with operator maintenance enabled and no pending maintenance operation. The chassis ID is required; each request targets one chassis.
A `202` response means queued, not completed; `metadata.lifecycleState.value` transitions through `Maintenance(...)` to `Ready` when the BMC accepts the reset, or `Failed/...` if dispatch fails. `Ready` does not confirm hardware recovery; verify recovery before clearing operator maintenance.
Read the Machine with `includeMetadata=true` to inspect its lifecycle state.
The reset sends the Redfish `ForceRestart` action to the selected chassis.
The selected chassis must support the Redfish reset action. Pending reset work and operator maintenance block new allocations.
Org must have an Infrastructure Provider entity and own the Site that the Machine belongs to. User must have authorization role with `PROVIDER_ADMIN` suffix.

Reference: https://docs.nvidia.com/infra-controller/rest-api-reference/api-reference/machine/reset-machine-chassis

## Authentication

- `Authorization` header (bearer token, required) — ``` export JWT_BEARER_TOKEN="<jwt-bearer-token>" # Example org name: "acme-inc export ORG_NAME=<org-name> # Use the JWT bearer token in your API request auth header: curl -v -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $JWT_BEARER_TOKEN" https://nico-rest-api.nico.svc.cluster.local/v2/org/$ORG_NAME/nico/user/current ```

## Request

### Path parameters

- `org` (string, required) — Name of the Org
- `machineId` (string, required) — ID of the Machine
- `chassisId` (string, required) — Case-sensitive Redfish chassis identifier for the single chassis to reset

## Response

### 202

Machine chassis reset request was accepted

- `message` (string, required) — Human-readable outcome of the request

## Errors

### 400 Bad Request Error

Error response when request data cannot be validated

- `source` (enum, optional) — Source of the error.
  - Allowed values: `nico`
- `message` (string, optional) — Message describing the error
- `data` (object, optional, nullable) — Additional data about the error

### 403 Forbidden Error

Error response when user is not authorized to call an endpoint or retrieve/modify objects

- `source` (enum, optional) — Source of the error.
  - Allowed values: `nico`
- `message` (string, optional) — Message describing the error
- `data` (object, optional, nullable) — Additional data about the error

### 404 Not Found Error

Error response when requested object is not found

- `source` (enum, optional) — Source of the error.
  - Allowed values: `nico`
- `message` (string, optional) — Message describing the error
- `data` (object, optional, nullable) — Additional data about the error

### 412 Precondition Failed Error

The Machine is missing on Site, is assigned to a tenant, is not in the Ready lifecycle state, does not have operator maintenance enabled, already has a pending maintenance operation, or its Site is not Registered.

- `source` (enum, optional) — Source of the error.
  - Allowed values: `nico`
- `message` (string, optional) — Message describing the error
- `data` (object, optional, nullable) — Additional data about the error

### 500 Internal Server Error

Response when the API handler encounters an unexpected error

- `source` (enum, optional) — Source of the error.
  - Allowed values: `nico`
- `message` (string, optional) — Message describing the error
- `data` (object, optional, nullable) — Additional data about the error

## Examples

**Response**

```json
{
  "message": "Machine chassis reset request was accepted"
}
```

**SDK Code**

```python example-1
import requests

url = "https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/machine/machineId/chassis/chassisId/reset"

headers = {"Authorization": "Bearer <token>"}

response = requests.patch(url, headers=headers)

print(response.json())
```

```javascript example-1
const url = 'https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/machine/machineId/chassis/chassisId/reset';
const options = {method: 'PATCH', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go example-1
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/machine/machineId/chassis/chassisId/reset"

	req, _ := http.NewRequest("PATCH", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby example-1
require 'uri'
require 'net/http'

url = URI("https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/machine/machineId/chassis/chassisId/reset")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java example-1
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.patch("https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/machine/machineId/chassis/chassisId/reset")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php example-1
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PATCH', 'https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/machine/machineId/chassis/chassisId/reset', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp example-1
using RestSharp;

var client = new RestClient("https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/machine/machineId/chassis/chassisId/reset");
var request = new RestRequest(Method.PATCH);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift example-1
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://nico-rest-api.nico.svc.cluster.local/v2/org/org/nico/machine/machineId/chassis/chassisId/reset")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```