Trying out a scenario that is presumably something users would stumble upon:
First I tried to import an older version of the GDL channel I had on one local drive, import was successful.
Next I updated that channel to the most recent version by importing from Studio, success again.
Finally I tried to export the same channel back to the local drive to update it, and the export failed.

Should the users be able to update the local channel storage by exporting from an updated channel on the server, or this isn't something we recommend? If not, should we make a note of that in the user documentation, and recommend that the export is always created anew, that is, from scratch?
Inability to update channels on local drives.
Nothing in the console or network tab, logs are the same as in #5547.
DB of the channel in question (from the local drive, original and after export):
0e173fca6e9052f8a474a2fb84055faf.zip
0e173fca6e9052f8a474a2fb84055faf-after-export.zip
Let me know if you want me to upload the full KOLIBRI_DATA folder somewhere.
Did the export in (3) succeed partly then fail, or did it fail immediately?
Seemed to be going on for a short while, and then failed. On subsequent try it failed immediately.
from the log
INFO 2019-05-23 05:21:08,916 exportchannel Exporting channel database for channel id 0e173fca6e9052f8a474a2fb84055faf to /media/osboxes/TOSHIBA/KOLIBRI_DATA
ERROR 2019-05-23 05:21:08,927 worker Job b0db68ebc80b43f7b095a909779223b1 raised an exception: Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/kolibri/dist/iceqube/worker.py", line 61, in handle_finished_future
result = future.result()
File "/usr/lib/python3.5/concurrent/futures/_base.py", line 398, in result
return self.__get_result()
File "/usr/lib/python3.5/concurrent/futures/_base.py", line 357, in __get_result
raise self._exception
File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/lib/python3/dist-packages/kolibri/dist/iceqube/worker.py", line 206, in wrap
raise e
File "/usr/lib/python3/dist-packages/kolibri/dist/iceqube/worker.py", line 202, in wrap
return f(*args, **kwargs)
File "/usr/lib/python3/dist-packages/kolibri/dist/iceqube/classes.py", line 120, in y
return func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/kolibri/core/tasks/api.py", line 404, in _localexport
check_for_cancel=check_for_cancel,
File "/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/__init__.py", line 131, in call_command
return command.execute(*args, **defaults)
File "/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/base.py", line 330, in execute
output = self.handle(*args, **options)
File "/usr/lib/python3/dist-packages/kolibri/core/tasks/management/commands/base.py", line 84, in handle
return self.handle_async(*args, **options)
File "/usr/lib/python3/dist-packages/kolibri/core/content/management/commands/exportchannel.py", line 35, in handle_async
for block in copy:
File "/usr/lib/python3/dist-packages/kolibri/core/content/utils/transfer.py", line 85, in __next__
return self.next()
File "/usr/lib/python3/dist-packages/kolibri/core/content/utils/transfer.py", line 95, in next
self.dest_file_obj.write(chunk)
OSError: [Errno 5] Input/output error
it seems that it cannot write to your local drive. Are you able to directly copy the database file from KOLIBRI_HOME/content/databases to /media/osboxes/TOSHIBA/KOLIBRI_DATA/content/databases?
@radinamatic To go off @lyw07's last observation, are you able to Export a completely new channel to your USB drive (i.e. one that has zero contents on it already)? I'd be curious to see if you get the same Input/Output error.
Well, it does seem to be a garden variety connection-with-external-drive issue, as after plugging out and in again, I'm able to export that channel and other too... :woman_shrugging:

I guess I was trying so hard to find a fault in various import/export scenarios, the unit finally got fed up with me, and refused to obey! bug-confirmation-bias :joy:
Seems resolved, closing for now!