Migrating from Evernote to use Joplin with OneDrive

Hi all,

I'm moving away from Evernote, which I used for over ten years. Everything indicates Joplin is a promising replacement, not only because it's neat, but also open source, so I'm gonna give it a try. Or, at least, it's whats I've been doing for the last week. I'm fighting hard to resist Obsidian's appeal.

My Evernote account had ~2000 notes. I also have an Android phone where I can see my notes happily synchronized seemlessly.

I want to migrate, and in the meantime take advantage of the fact that I already subscribe to Microsoft 365, so I have OneDrive for storage and sync. I'm running Windows 10 here (full specs below).

So, I exported each Evernote notebook separately, generating one .enex file for each. Then I installed Joplin, only to notice it stores its data in the C:\Users\me\.config\joplin-desktop folder. At first, it makes sense, since it's a user-related data pack. But then we see the aforementioned folder is not under OneDrive's watch, which is C:\Users\me\OneDrive\[...]. Therefore, I would need to change Joplin's default storage location; however, I don't see how to do this.

So I came across a tip that instructed me to create a symbolic link from the user folder to a folder under OneDrive. So I did this in PowerShell:

New-Item -Path "C:\Users\me\OneDrive\Joplin" -ItemType SymbolicLink -Value "C:\Users\me\.config\joplin-desktop"

As you can see, this is already beyond the capacity of a regular Evernote user Joplin wants to present as an alternative to.

Anyway, it created the symlink, and now I see the Joplin data is being uploaded to OneDrive. I even checked OneDrive's web interface and saw the files there. Good, right? Not yet.

So, on the Android app, I went ahead and set up the synchronization, beginning with the desktop app, then on Android. I logged in, and the sync began. And continued. And continued. Eternally.

I eventually saw my notes on the phone, but I can't tell if they're all there. Also, after setting up the sync, I say the Windows app began syncing again, and kept doing so. Eternally.

So I uninstalled the Android app and started over. I can't seem to achieve a different result.

I searched this forum and found this: https://discourse.joplinapp.org/t/onedrive-not-suitable-for-joplin/3864/8. Is it sorted already? Is there really a 4MB file size limit?

Apart from that, what am I doing wrong?

My specs:

Windows 10 22H2 19045.3570
Joplin 2.12.18 (prod, win32)
Client ID: 79aba2fb0ec2492e8ac1a9e7b4601fdd
Sync Version: 3
Profile Version: 43
Keychain Supported: Yes
Revision: a0a4a81

Thank you for asking about this!

Setting up OneDrive sync on desktop

Don't do this! Joplin handles OneDrive sync internally rather than through the Windows file system — the .config directory should only be on your C:\ drive.

On desktop, OneDrive sync can be set up by

  1. Installing Joplin
  2. Opening Joplin's settings (Tools > Options)
  3. Going to the "Synchronization" tab
  4. Clicking "OneDrive" in the sync target dropdown
  5. Clicking "OK"
  6. Pressing "Sync" and logging in to OneDrive through Joplin.

There should also be a pop-up the first time the "Sync" button is pressed that allows selecting "OneDrive" as a sync target.

It looks like other people find this method of sync confusing.

Syncing on Android

If the desktop app hasn't finished syncing, it may also prevent the Android app from doing so. With the OneDrive sync target, Joplin creates a file that acts like a lock, preventing other clients from syncing when doing so might lead to incomplete/corrupted data. As such, make sure that the desktop app has finished syncing before syncing the Android app.

Syncing the Android app for the first time can take a while, but it should also show progress above the "Syncing" button.

The 4 MB limit shouldn't be relevant anymore.

1 Like

Thanks for the kind reply!
Ok, so first things first.

  1. Just for the sake of safety, I uninstalled Joplin from Android.
  2. Then I deleted the symlink under C:\Users\me\OneDrive that pointed to the default local Joplin config folder. After that, I got a system notification warning about the deletion of thousands of files from OneDrive. I clicked "remove" (other option was "restore all")
  3. After that I restarted the program on Windows. The notes were there, as expected.
  4. So I went again to the Options -> Synchronisation and opened the sync wizards just to setup OneDrive again.
  5. Then I hit "back" and then the "syncronize" button. It spinned for a moment, but I ccouldn't see the OneDrive cloud icon indicate any activity. Then the double round arrows of the sync button are stationary.

Are my files inside OneDrive? Where exactly? I don't plan to begin using the Android Joplin app until I'm certain everything is safe on the OneDrive cloud.

Try creating a new note, then clicking the sync button. Doing this should add a new file in the Apps/Joplin/ directory of OneDrive.

So I did, and it worked fine within the Windows-OneDrive domain. The notes from the config folder got replicated in the OneDrive/apps folder.

Optimistically, I reinstalled Joplin on Android and proceeded to sync, after doing the OneDrive authentication and so forth. After 15 minutes, the synchronization completed!! EXCEPT: 1. Notes are present, but no notebooks! Everything is flat. And 2: after syncing, the Android app showed a couple of notes I had created days before whilst testing, but I thought I got rid of them.

What gives?

Edit: I tried editing a random note via the Android app and, to my surprise, only five tags were listed: they happen to be the ones I created as a test in a prior installation. Now I'm confused.

Possibility 1

One possibility: Multiple Joplin folders were created in OneDrive. For example,

Possibility 2

Another possibility is this bug in the database library we use on Android is being hit. If a data contains \u0000, the database library truncates the data being stored at that character.

I am able to sync resources that should contain many instances of \u0000 (e.g. a JPEG image) on Android, so I suspect that this is not the issue (at least for resources).

Possibility 3

The desktop app hasn't finished syncing:
screenshot: Desktop states "created remote items"

It seems to be okay for another app to read from the sync target while the desktop app is writing. In this case, notes with a notebook that hasn't synced yet look like this
screenshot: Arrow pointing to note title

Possibility 4

The desktop app has finished syncing, but the mobile app is being rate-limited and hitting this bug in Joplin's OneDrive sync code. If so, syncing from desktop/mobile again (might) temporarily fix the issue.

An update: after a long while (I wasn't looking all the time), the notebooks finally showed on the Android app. I don't know why or how. The tags are still missing. Don't know why either.

So, the possibilities:

Possibility 1 is ruled out.
Possibility 2 is beyond my capacity to verify. What I can tell is that I imported a good deal of Evernote notes gathered for the last 11 years, and they were not all created equal. Some came from the web clipper, some came from WYSIWYG copy-and-paste. So I can't, by now, point to an encoding problem in one or more notes.
Possibility 3 doesn't apply.
Possibility 4 is also beyond my knowledge, and that issue on GitHub seems not to be a priority. Two bugs already?

I was excited about Joplin, and still am if I decide I don't need the Android app (which is not likely), since the desktop app is neat. However, there is a CENTRAL issue, which is sync with OneDrive. I won't switch my cloud provider. Reading other topics here, it seems it was already a problem back in 2021. I made an update to a note and let it lie for half an hour without forcing sync. Then I checked the sycn status and it states it synced (could tell by the time). But I went to OneDrive under Apps/Joplin to find the note by id and it wasn't there. Now I'm not even feeling safe my notes are really being synchronised.

One of big disadvantages of Joplin seems to be the first sync. My guess is that's your case as well.
First time sync when you have a lot of notes (which seems to be your case) can take a lot of time.
The good news is that once it completes, subsequent syncs should be a lot faster.

The behavior with missing tags, folders, etc: Joplin is dowloading (and decrypting, if need be) items, and showing them ASAP.
That means that if a note is downloaded, but not a Folder or a Tag, you simply won't see them until they arrive.

So what I'd try is, leave the android app open and syncing for a long(er) time. Once everything is done and only changes are getting downloaded, it'll be a lot quicker.

1 Like

I'll give it a patient new try. Especially now that I'm getting the orange upper warning about some resources not being able to sync.
I wonder what would happen if I were one of those Evernote heavy users, with 50k notes plus tons of images attached. How long would it take? It would take longer than the acceptable time to stay at halt for the migration!
Ah, does it work to have my phone be charging while I sleep, but blocking after a period? Will Joplin/OneDrive within Joplin remain working on the sync?

I don't think it will. I just disabled screen lock for some time, left Joplin open and let it work.

Honestly, an improvement for this is p.much on the top of my wishlist. (I run Joplin Server though.)

disabling screen lock while charging at night is my preferred mode to sync with a device for the first time especially.

Lets leave the Android sync aside for a moment. I launched my Manjaro VM, installed Joplin and set up the sync in there. It downloaded the notes... sorta.
It's been 2 hours now, and the Manjaro installation doesn't have the Wi-Fi or the screen lock limitation that occurs on Android.
After a while, I checked the app with the file manager open, and it behaved like that: a file showing up and vanishing all the time. Also, if you can see it, the lower left corner displays the sync stats, but they're all random; I don't know the beginning of the meaning of those numbers. They change all the time. For instance, now, two hours after the sync began, I see the numbers:
Fetched items: 358/400.
Fetching resources: 3/8

What resources are those? I'm currently locked in that 3/8 number; on the vídeo, you see 3/28328.

One hour into the sync, the tags had not shown. Now, 2 hours after, they've started to appear alphabetically; it's currently on letter O. Is it expected to take that long? I don't mean to be a naysayer, but Evernote didn't take over 10 minutes to sync it all. Also, OneDrive itself is a solid and fast cloud synchronization application. Where's the bottleneck? Encryption?

Remember, I had 2000 notes on Evernote, only a few with them with images; I think the total number of images doesn't exceed 1000. So what are all those 28k resources being fetched?

I have no idea about your system. I don’t know the reason. But Joplin can take hours or a whole night to sync a database for the first time. If energy isn’t too expensive and time isn’t a problem, give it both to your device and rest, sleep, play, read, do whatever you want - and let Joplin do what is necessary. Patience is the key here. That’s my experience and my systems (WebDAV with win10, iOS, portable on win) work fine with Joplin.

I sincerely understand your point, but an application which purports to be the Evernote replacement can't let this happen. Joplin is wonderful, user friendly, free, open source and lets me be the owner of my data. Plus it is pratically on par with Evernote on the practical functionality level.

HOWEVER, please know that I've left my Linux virtual machine on with Joplin open and synching for 15 hours now, and just got back home. The data appears to be here — tags finally have finished creating — but I can't tell for sure. The notice on the lower left corner is completed (current date, right now), but the bottom line still says "fetching resources 3/108". This is totally, completely, utterly below expectations to have this amount of notes (~2k, plus 1k images) take this long to sync. Ah, the operating system (Manjaro, in the case), doesn't really matter; it's a desktop operating system running an available version of the app (Joplin, installed via a snap package).

Not to mention the poor feedback to the user, because this fetching resources: 3/108 indicator doesn't say anything practical: what are those 108 resources remaining? Images on the current note? Notes on the current notebook? What hasn't been synched yet? I could find some notes at random — past trips with photos in particular — that have the mention to images on the markdown side, but it doesn't render on the preview side, which makes me think the images (which are not that many) have not actually been downloaded. All I see is, on the left side:


Are you sure this is normal and expected? Can I point fingers to OneDrive, say, lets think something far-fetched like Microsoft is throttling the sync to disencourage the use of an OneNote competitor? Or is this nonsense?

Or, could this be something related to E2EE?

This is all very, very sad, because I really wish this was an opportunity to switch to a bona-fide open source, privacy-focused, liberty-respecting app.

A new piece of information:

I packed my joplin-desktop folder (the one under .config) in a rar archive and uploaded to a new virtual machine. This time, the notes, naturally, loaded instantly on this new instance. I also didn't have to re-setup OneDrive sync, as expected.

But, I went ahead to create a new note on my main machine (the guest, on Windows) and began typing. Actually, I was in the middle of inserting an AutoHotKey hotstring, like this:

:*:tims::this is my sentence

So when I typed T, followed by I, followed by M, then S, AutoHotKey wiped the "tims" string and wrote "this is my sentence". It's an abbreviation expander.

However, at the moment I was typing the string tims, the sync mechanism fired up in the middle of the expansion, leaving the local note like this:
this is my sentence
BUT the synchronised note on Ubuntu (the new virtual machine) just got the
this is my

Now the same note is present on both instances, on the host and on the guest machines, with the same title and same content otherwise, except for that piece, which is now divergent.

Thing is, the app did not call out the conflict.

Is this working as intended? Don't focus on the how the sentence was typed (AutoHotKey), but rather, think it as a case in which the user was in the middle of typing a sentence and it synced, having the incomplete note be imported to the remote instance, but displaying the complete sentence locally.

It seems to me you're going off topic and you lost me. Good luck!

Ok, let me simplify: please just help me make sense of the synchronisation messages on the lower left corner. Like the "fetching resources 3/108".

Update for you guys: I finally remembered how to leave the Android phone's screen always on while charging (developer options) and let Joplin run the sync overnight. The content appears to be here, but not the tags. And the bottom left notice leads me to think the synchronization is over.

I would report this as a bug, but I have no idea how to reproduce.

Also, everytime I open the Joplin Android app, it begins syncing, and the message "updated remote items: [a number]" is shown, even though I didn't change a byte of my notes on the phone app (or the desktop app), during the time. This is why i dont understand the sync messages.

So, can anybody chip in about the tags or the strange "updated remote items" message?

I‘m not using android, so I just found this advice: No Tags in Android App

Perhaps the system detects the missing tags and is trying to create them?

If deleting, re-installing and syncing gives you no proper database on your phone, it could help to open a new thread here in the support forum with an accurate description of your

  • system,
  • joplin version,
  • sync-method,
  • issue
    to attract more competent help than mine. Good luck!

Thanks for coming back, Wimvan! Sure, I'll open a new topic. So for the sake of "closure" (or not), let me say this:
Yeah, I was about to type a fully-cherrished text of good news, but then I checked again and... like they say in Brazil: "the poor's joy is short lasting" :frowning:
What happened was: I, once again (fifth time maybe?) uninstalled Joplin from my Android phone and reinstalled, and put it to sync overnight, now with the phone unlocked continuously. When I woke up, surprise! The tags were there!
Then I opened this topic to report that and, when I checked my phone again.... abracadabra! The tags were gone! There were over 200, but only the ~7 first (in alphabetical order) were here.
I simply don't know how to explain this.
I even tried looking for the database file on Android (Database.sqlite), but it appears it resides on a protected, inaccessible directory.
And yes, I had found that topic you linked =/