## TL;DR

Every review conversation on the PR must be marked resolved. Go through the Files-changed view, address or reply to each thread, and click Resolve  -  unresolved threads block the merge even with enough approvals.

## Error

```text
Merging is blocked: 3 conversations must be resolved before merging.
```

## Steps

1. Open the Files changed tab and expand unresolved threads (the filter shows unresolved only). Expected: the list of blocking conversations.
2. For each thread: make the requested change, or reply explaining why not, then click Resolve conversation. Expected: the thread shows as resolved.
3. For threads on outdated diffs, verify the concern still applies before resolving  -  do not bulk-resolve blindly. Expected: each resolution is deliberate.
4. Re-check the PR status. Expected: the conversation block clears.

## When to use

- Branch protection requires conversation resolution and threads are unresolved.
- Review threads exist on the PR.

## When not to use

- The block is about approvals or checks  -  resolve those instead.
- The repo does not require resolution; then unresolved threads do not block.

## Tool compatibility

- GitHub (require conversation resolution) / GitLab (resolve threads).
- Any CI.

## Variant phrasings

### Thread resolved but block persists

Refresh  -  or a new comment re-opened a thread; re-check the unresolved filter.

### Many threads from an automated reviewer

Address the underlying pattern once, then resolve the batch with a summary comment.

## Why it happens

Unresolved conversations are the reviewer's open questions. The gate forces them closed so that feedback cannot be silently ignored  -  merging with open threads means shipping unaddressed concerns.

## Edge cases

- Only the thread author or someone with write access can resolve; if you lack it, ask.
- Resolving without addressing the feedback is visible in the timeline  -  reviewers notice.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_4FOvcYZgMN7x4cZEq-em0Q
