Using symbolic link to NFS directory on Ubuntu to save scraps (or .ora files)

Description of the Problem, or Question?

I have attempted to change the ‘Prefix when saving scaps:’ entry to a directory that is a symbolic link to an NFS share. Change: ‘~/MyPaint/scrap’ => ‘~/digital-art/MyPaint/scrap’. digital-art is a symbolic link in my home directory pointing to an NFS share mount point (/mnt/fileserver/Repository/digital-art).

When trying to save as scrap, I get 'A programming error has been detected." (see ERROR #1 pasted below)
with the last statement (FileNotFoundError: [Errno 2] No such file or directory: ‘/home/scotty/digital-art/MyPaint’) suggesting that the directory does not exist. It does exist. I even launched a python3 console and tried to see if python os.path.exists() function would return true.

Python 3.8.8
>>> import os
>>> os.path.exists("/home/{myname}/digital-art/MyPaint")
True
>>>

I also tried to make a symbolic link to the …/digital-art/MyPaint directory in my home directory.
link shown after creating:
MyPaint → /mnt/fileserver/Repository/digital-art/MyPaint/
and then leaving the ‘Prefix when saving scraps:’ entry as it was originally (~/MyPaint/scrap)
(see ERROR #2 pasted below)

Then I tried to specify the mount point directly in the ‘Prefix when saving scraps:’
‘/mnt/fileserver/Repository/digital-art/MyPaint’

after closing MyPaint and opening it again to verify the change was accepted, I tried to save as scrap a scribble and it said “Saved scrap001_a.ora successfully”. However, when I go to the directory it was supposed to have saved it to, it is empty. When I open the ‘Save As’ dialog, it shows the proper directory (/mnt/fileserver/Repository/digital-art/MyPaint) at the top and the scrap file listed with size,type,modified stats. I can also right-click on the 'scrap001_a.ora file shown in the ‘Save As’ dialog and click ‘Copy Location’, here it is:
/mnt/fileserver/Repository/digital-art/MyPaint/scrap001_a.ora

But again, when I go to that directory on my fileserver, it is empty.

When I close MyPaint and reopen it again, and repeat the process, the scrap is saved again, but it is still ‘scrap001_a.ora’ and the file server directory is still empty.
Seems like these are being saved in some kind of volatile file system that is only accessible by MyPaint and poofs away when MyPaint is closed. I say this because I can create many scraps 001_b, 001_c, etc. during a session and they all show up in the ‘Save As’ dialog and even in the ‘Open’ / ‘Open Recent’ dialog/menu. I can make changes to each scrap opening and closing them at will. Close MyPaint and they all vanish as if they hadn’t existed, not even in the ‘Open Recent’ menu.

If I try to navigate to the mount point after reopening MyPaint, the /mnt directory is not even displayed.
Is MyPaint designed to ignore /mnt directories?

I am a bit stumped. NFS caching locally maybe for this particular case?

Symbolic links in my home directory to NFS mount points do not show up in the ‘Save’ dialog, but symbolic links to another directory in my home directory do show up in the ‘Save’ dialog. So it doesn’t seem to be a generic symbolic link issue.

Basic System Details

MyPaint version:
2.0.1+git.478280f.dirty
(Python 3.8.8, GTK 3.24.30, GdkPixbuf 2.42.6, Cairo 1.16.0, GLib 2.68.3)

Operating System + Version:
Ubuntu 18.04.6 LTS
Linux 5.4.0-86-generic #97~18.04.1-Ubuntu SMP Sat Sep 18 03:11:22 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Make and Model # of Graphic Tablet:
Wacom Cintiq 21UX

Please Tell Us How to Reproduce the Problem in Steps.

Create an NFS share and mount it
Create a symbolic link to desired directory on the NFS share
Change the ‘Prefix when saving scraps:’ entry to include the symbolic link “directory”
Try to save a scrap

Are there any Errors Popping Up? If so, paste the text in the area shown below.

–ERROR #1----------------------------------------------------------------------------------------------------------------------

Mypaint version: 2.0.1+git.478280f.dirty
System information: Linux-5.4.0-86-generic-x86_64-with-glibc2.2.5
Using: Python 3.8.8, GTK 3.24.30, GdkPixbuf 2.42.6, Cairo 1.16.0, GLib 2.68.3
Traceback (most recent call last):
  File "/app/lib/mypaint/gui/filehandling.py", line 1278, save_scrap_cb(self=<gui.filehandling.FileHandler object>, action=<Gtk.Action object at 0x7fd2a9d93540 (GtkAction at 0x5651863083b0)>)
            prefix = self.get_scrap_prefix()
            self.app.filename = self.save_autoincrement_file(
                filename,
  File "/app/lib/mypaint/gui/filehandling.py", line 1297, save_autoincrement_file(self=<gui.filehandling.FileHandler object>, filename=None, prefix='/home/{myname}/digital-art/MyPaint/scrap', main_doc=True)
            if not os.path.exists(prefix_dir):
                os.makedirs(prefix_dir)
  variables: {'os.makedirs': ('global', <function makedirs at 0x7fd2b24c6dc0>), 'prefix_dir': ('local', '/home/{myname}/digital-art/MyPaint')}
  File "/usr/lib/python3.8/os.py", line 223, makedirs(name='/home/{myname}/digital-art/MyPaint', mode=511, exist_ok=False)
        try:
            mkdir(name, mode)
        except OSError:
  variables: {'mkdir': ('global', <built-in function mkdir>), 'name': ('local', '/home/{myname}/digital-art/MyPaint'), 'mode': ('local', 511)}
FileNotFoundError: [Errno 2] No such file or directory: '/home/{myname}/digital-art/MyPaint'

–ERROR #2----------------------------------------------------------------------------------------------------------------------

Mypaint version: 2.0.1+git.478280f.dirty
System information: Linux-5.4.0-86-generic-x86_64-with-glibc2.2.5
Using: Python 3.8.8, GTK 3.24.30, GdkPixbuf 2.42.6, Cairo 1.16.0, GLib 2.68.3
Traceback (most recent call last):
  File "/app/lib/mypaint/gui/filehandling.py", line 1278, save_scrap_cb(self=<gui.filehandling.FileHandler object>, action=<Gtk.Action object at 0x7f131833c680 (GtkAction at 0x55b3271693b0)>)
            prefix = self.get_scrap_prefix()
            self.app.filename = self.save_autoincrement_file(
                filename,
  File "/app/lib/mypaint/gui/filehandling.py", line 1297, save_autoincrement_file(self=<gui.filehandling.FileHandler object>, filename=None, prefix='/home/{myname}/MyPaint/scrap', main_doc=True)
            if not os.path.exists(prefix_dir):
                os.makedirs(prefix_dir)
  variables: {'os.makedirs': ('global', <function makedirs at 0x7f1320a6fdc0>), 'prefix_dir': ('local', '/home/{myname}/MyPaint')}
  File "/usr/lib/python3.8/os.py", line 223, makedirs(name='/home/{myname}/MyPaint', mode=511, exist_ok=False)
        try:
            mkdir(name, mode)
        except OSError:
  variables: {'mkdir': ('global', <built-in function mkdir>), 'name': ('local', '/home/{myname}/MyPaint'), 'mode': ('local', 511)}
FileExistsError: [Errno 17] File exists: '/home/{myname}/MyPaint'
MyPaint's community forums is sponsored by Altispeed. Click here to visit their website.