flxzt/rnote · error
Extracting bitmap image format from doc pages export prefs…
Error message
Extracting bitmap image format from doc pages export prefs failed, not set to a bitmap format.
What it means
Migration guard in TryFrom<RnoteFileMaj0Min9> for RnoteFileMaj0Min13: the engine_snapshot carried by the older file is not a JSON object, so the migration cannot access its fields. Fires on structurally corrupt .rnote files where engine_snapshot holds a non-object JSON value.
Solutions
- The .rnote file is structurally corrupt; recover from a backup copy.
- Inspect engine_snapshot in the file's JSON to see what non-object value it holds.
- Re-save the document in the originating app version if it can still open the file.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/rnote-engine/src/engine/export.rs:759 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of flxzt/rnote@bbc5354502 (2026-09-08).
Data as JSON: /api/errors/05e422535c50a014.
Report an issue: GitHub.
Appendix: source
Thrown at crates/rnote-engine/src/engine/export.rs:759
}
/// Export the document pages as bitmap.
///
/// Returns an error if the format pref is not set to a bitmap variant.
fn export_doc_pages_as_bitmap_bytes(
&self,
doc_pages_export_prefs_override: Option<DocPagesExportPrefs>,
) -> oneshot::Receiver<Result<Vec<Vec<u8>>, anyhow::Error>> {
let (oneshot_sender, oneshot_receiver) = oneshot::channel::<anyhow::Result<Vec<Vec<u8>>>>();
let doc_pages_export_prefs = doc_pages_export_prefs_override
.unwrap_or(self.config.read().export_prefs.doc_pages_export_prefs);
let pages_contents = self.extract_pages_content(doc_pages_export_prefs.page_order);
rayon::spawn(move || {
let result = || -> Result<Vec<Vec<u8>>, anyhow::Error> {
let image_format = match doc_pages_export_prefs.export_format {
DocPagesExportFormat::Svg => {
return Err(anyhow::anyhow!(
"Extracting bitmap image format from doc pages export prefs failed, not set to a bitmap format."
));
}
DocPagesExportFormat::Png => image::ImageFormat::Png,
DocPagesExportFormat::Jpeg => image::ImageFormat::Jpeg,
};
pages_contents
.into_par_iter()
.enumerate()
.map(|(i, page_content)| {
page_content
.gen_svg(
doc_pages_export_prefs.with_background,
doc_pages_export_prefs.with_pattern,
doc_pages_export_prefs.optimize_printing,
DocPagesExportPrefs::MARGIN,
)?
.ok_or(anyhow::anyhow!(View on GitHub (pinned to bbc5354502)