{"record":{"id":"2e864f92024d7b4b","repo":"dotnet/wpf","slug":"reachpackaging-documentwasclosed","errorCode":null,"errorMessage":"ReachPackaging_DocumentWasClosed","messagePattern":"ReachPackaging_DocumentWasClosed","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/ReachFramework/Packaging/XpsDocument.cs","lineNumber":481,"sourceCode":"        void\n        RemoveSignature(\n            XpsDigitalSignature signature\n            )\n        {\n            CheckDisposed();\n\n            ArgumentNullException.ThrowIfNull(signature);\n            if (null == signature.PackageSignature)\n            {\n                throw new NullReferenceException(\"signature.PackageSignature\");\n            }\n            if (null == signature.PackageSignature.SignaturePart)\n            {\n                throw new NullReferenceException(\"signature.PackageSignature.SignaturePart\");\n            }\n            if( CurrentXpsManager == null )\n            {\n                throw new InvalidOperationException(SR.ReachPackaging_DocumentWasClosed);\n            }\n            PackageDigitalSignatureManager packageSignatures = new PackageDigitalSignatureManager(CurrentXpsManager.MetroPackage);\n            packageSignatures.RemoveSignature(signature.PackageSignature.SignaturePart.Uri );\n            _reachSignatures = null;\n            _reachSignatureList = null;\n            EnsureSignatures();\n}\n\n        /// <summary>\n        /// This method adds a thumbnail to the current Xps package.\n        ///\n        /// There can only be one thumbnail attached to the pakcage.\n        ///  Calling this method when there\n        /// is already a starting part causes InvalidOperationException to be\n        /// thrown.\n        /// </summary>\n        /// <returns>Returns a XpsThumbnail instance.</returns>\n        public","sourceCodeStart":463,"sourceCodeEnd":499,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/ReachFramework/Packaging/XpsDocument.cs#L463-L499","documentation":"RemoveSignature throws this InvalidOperationException when CurrentXpsManager is null, meaning the XpsDocument has already been closed (or was never fully opened); signature removal requires an open package. Callers must perform signature operations while the document is open and dispose afterwards.","triggerScenarios":"Thrown at src/Microsoft.DotNet.Wpf/src/ReachFramework/Packaging/XpsDocument.cs:481 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Perform all signature operations before closing/disposing the XpsDocument","Re-open the package with a new XpsDocument to remove signatures","Check CurrentXpsManager/IsDisposed state before calling RemoveSignature"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"81131a70a4c573cd62748a5c36908fc4d662daa9","analyzedAt":"2026-09-14T10:12:48.479Z","contentChangedAt":"2026-09-14T10:12:48.479Z","schemaVersion":2},"datasetVersion":"2026-09-22T01:17:13.364Z"}