diff --git a/deltachat-ffi/src/lib.rs b/deltachat-ffi/src/lib.rs index 3b2446982..a125037ef 100644 --- a/deltachat-ffi/src/lib.rs +++ b/deltachat-ffi/src/lib.rs @@ -1199,9 +1199,13 @@ pub unsafe extern "C" fn dc_archive_chat( } let ffi_context = &*context; let archive_state = match archive { - 2 => ArchiveState::Pinned, + 0 => ArchiveState::Normal, 1 => ArchiveState::Archived, - _ => ArchiveState::Normal, + 2 => ArchiveState::Pinned, + _ => { + eprintln!("ignoring careless call to dc_archive_chat(): unknown archived state"); + return; + } }; ffi_context .with_inner(|ctx| { diff --git a/src/chat.rs b/src/chat.rs index 75c087bba..8ff005822 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -965,7 +965,11 @@ impl rusqlite::types::FromSql for ArchiveState { match val { 2 => ArchiveState::Pinned, 1 => ArchiveState::Archived, - _ => ArchiveState::Normal, + 0 => ArchiveState::Normal, + _ => { + println!("unknown archived state, falling back to normal state (was this db opened with a newer deltachat version?)"); + ArchiveState::Normal + }, } }) })