## TL;DR
Fix this in Discourse by acting on the exact problem first: fix it in the review queue first by approving the stuck post, then trace which setting held it by testing a link post with the same account, and adjust that link review threshold or trust exemption, because deleting and reposting without changing the setting just creates a second held post. Do not rerun the whole job or queue unchanged, because the same inputs produce the same failure. Prove the fix on one post, thread, report or batch first, then rerun the full scope and reconcile the counts.

```text
Post held for review - awaiting moderation after a trusted user posted a link
```

## Use this when
- The operation in Discourse fails with this exact message or symptom: Post held for review - awaiting moderation after a trusted user posted a link.
- The same failure repeats on retry with unchanged inputs.
- Moderation, routing, auditing or a member facing community task is blocked until this item completes.

## Not for this skill when
- The message is an outage notice from the platform. Resolve that first, then return here if this problem remains.
- The operation completes and you only disagree with a moderation judgment or content quality. That is a policy review, not this failure.

## Steps
1. Reproduce the failure with the smallest scope that still shows it in Discourse, and copy the full message plus the post, thread, report or member involved into the run notes. Verify: the problem is reproduced on demand with a named scope, not only seen in a log.
2. Apply the specific fix for this problem: fix it in the review queue first by approving the stuck post, then trace which setting held it by testing a link post with the same account, and adjust that link review threshold or trust exemption, because deleting and reposting without changing the setting just creates a second held post. Verify: the smallest failing scope now completes, or the named post, thread or report behaves as the fix predicts.
3. Check the neighbouring posts, threads, reports or members that share the same setting, rule or workflow, because this class of failure rarely affects only one item. Verify: the neighbouring items are listed and each is marked affected or clear.
4. Rerun the original operation in Discourse on the previously failing scope, watching for the same message rather than assuming success from a quiet log. Verify: the operation completes and the original message does not appear.
5. Compare the result counts or status against the source in Discourse so a silent partial success is caught before sign off. Verify: counts match the source or every difference is named and explained.
6. Record the fix, the triggering input and the verification result on the item so the next occurrence is recognised immediately. Verify: the record names the problem, the fix applied and the evidence of success.

## Why it happens
A single review rule such as a link threshold or watched domain list can hold posts regardless of trust level, and the hold recurs until that rule is found and changed.

## Variant phrasings

### Post held for review - awaiting moderation after a trusted user posted a link
The verbatim form searchers paste from the console, queue or report. Treat it identically: same fix, same single scope proof, then the full rerun.

### How to fix - how to fix Discourse post stuck awaiting moderation after trusted user posted link fails error
The how to phrasing for the same failure in Discourse. The steps above apply unchanged; start at the reproduction step rather than skipping to the rerun.

### Discourse troubleshooting for this failure
The symptom first phrasing used when the console hides the full message. Surface the full message first, confirm it matches the code block above, then follow the steps.

## Edge cases
- If the fix works on the small scope but the full rerun still fails on a different item, treat that item as a new instance, record its scope separately, and apply the same steps rather than widening the first fix blindly.
- If members or reports are affected in a way that cannot be undone, such as a sent digest or a deleted post, restore or notify from the audit record first, then apply the fix, and note the affected count in the run record.
- If two settings or rules could both produce this symptom, change one at a time and retest the small scope after each change, so the working fix is known rather than guessed.

Compatibility: Discourse at current versions, plus the admin console, moderation queue or API the query names; no extra tooling beyond the source system access needed to verify counts.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_PTja2Nosav4BfxgqEBOtFg
