---
title: "Merge a fault into another"
method: POST
path: "/projects/{project_id}/faults/{fault_id}/merge"
tags: ["Faults"]
---

# Merge a fault into another

`POST /projects/{project_id}/faults/{fault_id}/merge`

## Request

- Base URL: `https://app.honeybadger.io/v3`
- URL: `https://app.honeybadger.io/v3/projects/{project_id}/faults/{fault_id}/merge`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/honeybadger/apis/honeybadger-api/docs/projects/:project_id/faults/:fault_id/merge/post.ts> (a function with typed inputs; its response is checked against the schema)

Merges the fault in the path into the fault named by `target_fault_id`. Its notices, comments, tickets, notification opt-outs, Actions runs and merge history move to the target, and its tags, assignee and resolved or ignored state are dropped.

The merge runs in the background, so the response is 202. Until it finishes, the merged fault can still be read and written; once it's done, a GET on it redirects (301) to the target. The redirect lasts about as long as the project's retention, and then the old ID returns 404.

## Path parameters

- `project_id` string, required
- `fault_id` string, required

## Request body

- FaultMergeInput: Names the fault to merge into
  - `target_fault_id` string, required: ID of the fault to keep. The fault in the path is merged into it.

## Response `202`

Merge accepted and queued

- object
  - `data` FaultMerge, required: A queued merge
    - `batch_id` string, required: Identifies the background merge
    - `source_id` string, required: ID of the fault being merged, from the path.
    - `target_id` string, required: ID of the fault kept
  - `meta` ResponseMeta
    - `request_id` string: Unique identifier for the request, for correlating with support

## Other responses

- `401`: The credential is missing, invalid, expired or revoked (`unauthorized`), or was sent in a way v3 doesn't accept (see the examples).
- `403`: The credential isn't allowed to do this. `error.code` says why. An account or project the credential doesn't cover is 404 `not_found`, not 403.
- `404`: Resource not found
- `409`: This fault was merged into another, so the write wasn't applied. `error.details` names the fault it was merged into.
- `422`: Validation error

---

[API](https://skmtc.dev/honeybadger/apis/honeybadger-api.md) - [All operations](https://skmtc.dev/honeybadger/apis/honeybadger-api/llms.txt) - [OpenAPI document](https://skmtc.dev/honeybadger/apis/honeybadger-api/revisions/cbcff53f2c8a?raw)
