{"record":{"id":"5f4b04d7342352ff","repo":"unopim/unopim","slug":"publication-publication-id-is-not-published-o","errorCode":null,"errorMessage":"Publication {$publication->id} is not published; only a published publication can be withdrawn.","messagePattern":"Publication (.+?) is not published; only a published publication can be withdrawn\\.","errorType":"exception","errorClass":"InvalidPublicationTransitionException","httpStatus":null,"severity":"error","filePath":"packages/Webkul/Publication/src/Services/Publisher.php","lineNumber":193,"sourceCode":"            if ($publication->status === PublicationStatus::Draft) {\n                $publication->update(['status' => PublicationStatus::Published]);\n            }\n\n            DB::afterCommit(fn () => PublicationPublished::dispatch($publication, $version));\n\n            return $version;\n        });\n    }\n\n    /**\n     * Marks the publication Withdrawn. Reversible via reinstate(); throws when the\n     * publication is not published, so a redacted one can never be walked back to\n     * withdrawn and a no-op withdrawal cannot pass for a real state change.\n     */\n    public function withdraw(Publication $publication): void\n    {\n        if ($publication->status !== PublicationStatus::Published) {\n            throw new InvalidPublicationTransitionException(\n                'Publication '.$publication->id.' is not published; only a published publication can be withdrawn.'\n            );\n        }\n\n        $publication->update(['status' => PublicationStatus::Withdrawn]);\n\n        DB::afterCommit(fn () => PublicationWithdrawn::dispatch($publication));\n    }\n\n    /**\n     * Returns a withdrawn publication to Published; throws when not withdrawn, so redaction stays one-way.\n     */\n    public function reinstate(Publication $publication): void\n    {\n        if ($publication->status !== PublicationStatus::Withdrawn) {\n            throw new InvalidPublicationTransitionException(\n                'Publication '.$publication->id.' is not withdrawn; only a withdrawn publication can be reinstated.'\n            );","sourceCodeStart":175,"sourceCodeEnd":211,"githubUrl":"https://github.com/unopim/unopim/blob/c27a402253ed2bcee0f3eb16319fa7fc5eec5ffd/packages/Webkul/Publication/src/Services/Publisher.php#L175-L211","documentation":"Error \"Publication {$publication->id} is not published; only a published publication can be withdrawn.\" thrown in unopim/unopim.","triggerScenarios":"Thrown at packages/Webkul/Publication/src/Services/Publisher.php:193 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c27a402253ed2bcee0f3eb16319fa7fc5eec5ffd","analyzedAt":"2026-08-21T04:19:34.141Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}