{"record":{"id":"ec66c458002a9bc0","repo":"DioxusLabs/dioxus","slug":"ditto-failed-to-create-zip-for-notarization","errorCode":null,"errorMessage":"ditto failed to create zip for notarization","messagePattern":"ditto failed to create zip for notarization","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"packages/cli/src/bundler/macos.rs","lineNumber":221,"sourceCode":"            if should_notarize {\n                let zip_path = output_dir.join(format!(\"{bundle_name}.zip\"));\n                tracing::info!(\"Creating zip for notarization: {}\", zip_path.display());\n\n                let status = Command::new(\"ditto\")\n                    .args([\n                        \"-c\",\n                        \"-k\",\n                        \"--sequesterRsrc\",\n                        \"--keepParent\",\n                        &app_dir.display().to_string(),\n                        &zip_path.display().to_string(),\n                    ])\n                    .status()\n                    .await\n                    .context(\"Failed to run ditto for zip creation\")?;\n\n                if !status.success() {\n                    bail!(\"ditto failed to create zip for notarization\");\n                }\n\n                match notarize(&zip_path, &app_dir).await {\n                    Ok(()) => {\n                        let _ = fs::remove_file(&zip_path);\n                    }\n                    Err(e) => {\n                        let _ = fs::remove_file(&zip_path);\n                        return Err(e.context(\"Notarization failed\"));\n                    }\n                }\n            }\n        } else {\n            tracing::debug!(\"No signing identity found; skipping code signing\");\n        }\n\n        Ok(vec![app_dir])\n    }","sourceCodeStart":203,"sourceCodeEnd":239,"githubUrl":"https://github.com/DioxusLabs/dioxus/blob/24f6a829df0dfa203961a98ea4cae21c2ff27e28/packages/cli/src/bundler/macos.rs#L203-L239","documentation":"The macOS bundler ran `ditto -c -k` to zip the .app for notarization and the command reported failure. The zip artifact is required by Apple's notary service, so the bundling step aborts when ditto exits unsuccessfully.","triggerScenarios":"Thrown at packages/cli/src/bundler/macos.rs:221 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["ditto could not create the notarization zip. Verify the .app path exists and the destination is writable."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"24f6a829df0dfa203961a98ea4cae21c2ff27e28","analyzedAt":"2026-08-23T07:10:14.078Z","contentChangedAt":"2026-08-23T07:10:14.078Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}