Notes don't sync to desktop but do sync to phone, "Error: Missing required property"

Joplin version: 1.4.19 (prod, linux)
OS: Debian 10 (desktop), iOS 14.1 (phone)
Sync target: Nextcloud 18.0.0 on Ubuntu Server 18.04.5
Using end-to-end encryption

For the past 2 weeks I've been having sync issues, but I've been too busy to troubleshoot until now.

I see the following error above the sync button (Joplin 1.4.19 AppImage on Debian 10):

Completed: 12/16/2020 11:06 PM
Last error: Error: Missing required property: type_: id: c94ef00641db4674be1a76db6fc2290d parent_id: fb6f2cba051040ebb19e1fa04db0c248 created_time: updated_time: 2020-12-01T03:35:31.387Z is_conflict: latitude: longitude: altitude: author: source_url: is_todo: todo_due: todo_completed: source: source_application: application_data: order: user_created_time: user_updated_time: encryption_cipher_text: JED01000022055add085e9e3f4c9d930d0bdd28598dd4002630{"iv":"FbIo6ycVEoZXmQuROiG1wQ==","v":1,"iter

I don't see any errors on the iOS app.

I enabled debug logging, cleared the console, then synced. This is the full output. The error is also present when the app starts.
debug-log.txt (55.2 KB)

When I first noticed this a note called "Shopping list" disappeared from my desktop, but was still on my phone. This note has existed for about a year since I just add/remove stuff and never delete it - so it's survived many Joplin version changes (possibly relevant?). It also disappeared from my laptop the next time I opened Joplin and synced.

I figured this note must be the problem, so I copied the contents into a new note called "New shopping list" and deleted the original note (on my phone, only device that could access it). iOS app said "Deleted remote items: 1" when it synced. But the error didn't disappear on other devices, AND the new note didn't pull down either.

My theory at this point was that I had edited shopping list on my phone, then desktop deleted the old note but failed to pull down the new version. But I couldn't replicate this - I edited some other notes on my phone, but they never disappeared on desktop, and the new contents I added didn't appear on desktop either.

I then tried to isolate the problem - full troubleshooting steps in spoiler, summary below:

Troubleshooting steps

Created note "desktop test" on desktop, sync

  • "Created remote items: 1."
  • Still shows other error below

Synced phone

  • "Created local items: 1."
  • I can see "desktop test"

Same test in reverse:

Created note "phone test" on iPhone, sync

  • "Created remote items: 1."

Synced desktop

  • No messages before "Completed: 12/16/2020"
  • Can't see "phone test" on desktop

I then opened Joplin on a laptop that hadn't synced since before the issue began

  • Downloaded a bunch of new notes, normal behavior
  • Lost the "Shopping list" note (same one that disappeared on desktop)
  • Same error as on desktop (see code block above), same hex id
  • I don't see desktop test OR phone test
  • The notes I edited on phone earlier also didn't update here

Created "Laptop test" and synced

  • "Created remote items: 1."

Synced phone

  • "Created local items: 1"
  • Can see "Laptop test"

Synced desktop

  • No messages before "Completed"
  • Cannot see "Laptop test"

Summary:

  • New notes are NOT being pulled down by the linux appimage
  • New notes ARE pulled down by the iOS app, regardless of which device they were created on
  • Therefor linux appimage is able to upload notes to the sync target, just can't download
  • Unable to determine if iOS is uploading (assuming it is since no errors + everything else works)
  • Still have no idea why "Shopping list" disappeared (other notes just don't update)

I read this topic and checked the note on the sync target, but there is no newline or EOL at the end. I've never edited notes directly on the sync target either. I'm still running Nextcloud 18 so I shouldn't be effected by the file corruption issue on Nextcloud 19.

Finally, since the error mentions "Missing required property", I compared the note mentioned in the error to the preceding note (alphabetically) as well as to one of the test notes created above. Was hoping to see an obvious missing parameter I could copy-paste over to fix it. There wasn't, but I did notice that the encryption_cipher_text parameter on the error note is RIDICULOUSLY long compared to the others. I do have some very long notes, perhaps this could be the problem? Is there a limit after which Joplin stops reading these files maybe? All 3 attached below.
note-mentioned-in-error.txt (29.4 KB)
preceding-note.txt (1.8 KB)
desktop-test.txt (1.6 KB)

Anyone else having this issue?

Your file c94ef00641db4674be1a76db6fc2290d.md is corrupted. Could you post it here to see what the issue is? You didn't manually edit this file by any chance?

It's the attachment called "note-mentioned-in-error.txt" at the bottom of the post. I definitely haven't edited it other than to check for the EOF/newline at the end. The newline in the one I posted is just from saving in Gedit - the copy on server doesn't have it.

Thanks for taking a look! Sorry for the wall of text, was working on it kinda late.

So many things wrong with this example that it definitely wouldn't work, and the app wouldn't accidentally generate this. Perhaps could you provide the file exactly as it is? Because maybe Gedit modified it automatically or something.

Here's the unaltered file, I just scp'd straight off the server: c94ef00641db4674be1a76db6fc2290d.md (29.1 KB)

I did copypaste the one in first post from an ssh session into gedit which is why the cipher text is broken into multiple lines. Other than that it looks the same though.

I was able to identify the note by following the parent_id and then checking properties of everything in that folder. I made a backup of it - would editing it now potentially overwrite the corrupted parts and fix it? Or could I just delete and re-create it?

It's not clear exactly what the problem is. The second note you've attached is valid and I cannot replicate the issue you had in the first post.