## TL;DR
Do not relaunch the campaign until you check whether it exists under a different identifier or state, because a relaunch creates a duplicate that auditors will flag. Look the campaign up by name in the Okta admin console, confirm it was not deleted or still in draft, and query it with the campaign identifier from the launch response rather than a display name. Most not found errors are an identifier, state or tenant mismatch, not a lost campaign.

```text
certification campaign not found
```

## Use this when
- A campaign launched for quarterly certification cannot be opened by reviewers.
- An API call or export returns not found for a campaign you can almost see in the console.
- Reviewers get the error while older campaigns still open normally.

## Not for this skill when
- No campaign was ever created for this period. Create and configure one instead.
- The campaign opens but reviewers cannot decide items. That is an assignment problem, not a lookup problem.

## Steps
1. Sign in to the Okta admin console for the exact tenant used at launch and search Governance campaigns by name and by start date, including draft and closed states. Verify: the campaign is either listed with a state or confirmed absent from this tenant.
2. Compare the tenant subdomain in the browser and in the API base address the export tool uses, character by character, since a sandbox and production tenant share campaign names. Verify: both point at the same tenant and the mismatch, if any, is written down.
3. Open the campaign audit events in the Okta system log and search for campaign create, update and delete events around the launch time to see who or what changed it. Verify: the log shows a create event and any later delete or rename event with an actor.
4. Retrieve the campaign through the Governance API using the identifier returned at creation, not the label, and note the exact status field in the response. Verify: the API returns the campaign object or a status that explains the console result.
5. If the campaign sits in draft, complete the missing reviewer assignment or end date that blocked launch, then launch it from the console and reopen the reviewer view. Verify: the state moves to active and at least one reviewer can open an item.
6. If a delete event exists, restore by cloning the last good campaign configuration into a new campaign with a corrected name that includes the review period, and link the clone to the deleted one in the change record. Verify: the replacement campaign is active and its identifier is recorded for the export tool.
7. Re-run the failing export or reviewer open using the recorded identifier and save the successful response with the evidence for this cycle. Verify: the export completes and the file opens with campaign items inside.

## Why it happens
Okta separates a campaign display name from its internal identifier, and lookups by integrations almost always use the identifier. A renamed campaign, a deleted draft, or a tool pointed at a second tenant all surface as the same flat not found error, because the API does not say which kind of miss happened. The system log is the tie-breaker: it shows whether the object was created, renamed, moved to draft or deleted, which turns a vague error into one concrete repair.

## Variants and edge cases

### Okta certification campaign missing after launch
The console-first phrasing. Search all states including draft and closed before concluding the campaign is gone, since filters hide non-active campaigns by default.

### governance campaign id invalid in API export
Integration phrasing for the same fault. Re-copy the identifier from the campaign page address or the create response; hand-typed identifiers are a common source.

### reviewers cannot open Okta campaign link
A mailed link can point at an older campaign or the wrong tenant. Compare the identifier inside the link with the active campaign before resending invitations.

Edge cases to check before closing the review cycle:
- Campaigns created by an API client can be invisible to console users who lack the right admin role. Check the viewer role before escalating.
- A campaign scheduled in the future reports not found to early API polls. Check the scheduled start before treating it as missing.
- Cloning a campaign copies settings but not decisions. Never present a clone as the original in audit evidence.

Compatibility: Okta Identity Governance access certifications, Okta admin console and Governance API, tenants with access review campaigns enabled.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_5B-fSD9h4j7ZxBGtU8Z5Kg
