Version 4.0.16

Released: September 29, 2021

Status: Stable



An issue that caused menus to reset and collapse at random was fixed.


On overload systems, document page image generation will reach the timeout value as display the placeholder icon for invalid images. The setting CONVERTER_IMAGE_GENERATION_MAX_RETRIES was backported from version 4.1 to allow changing the maximum retry value of the image generation tasks from a single location.

Celery’s maximum retry value defaults to 3, which couple with the default retry delay of 5 seconds means an image generation task will stop retrying after 15 seconds. The new settings sets this values to a default of 7 for estimated maximum retry time of 35 seconds per image.

Automatic quoting was added to the remaining migration query parameters to ensure maximum compatibility with database managers.


The OCR indexing examples in the documentation were updated according to the document changes in version 4.0.

A new chapter was added outlining the step to create a development deployment. The Docker image build chapter was updated to reference this new chapter.

Instructions were added on how to use a PIP cache to speed up the Docker image build process.

The current user is now capture and applied to the event when changing the active version of a document.


An edge situation that could cause the system restart banner to be triggered when a user changed their default language or timezone was fixed.


  • Minor fixes merged from version 3.5.11.

  • Remove duplicated makefile targets.

  • Add keyword arguments to PIL methods.

  • Fix support link in the menu.


  • None

Upgrade process

Docker Compose

Check the Docker upgrading chapter for the complete upgrade process.

Direct deployment

Upgrading from Mayan EDMS 3.5.x


Supervisord must be upgraded to version 4.2.2. See troubleshooting section: After upgrade to version 4.1

  1. Stop supervisord:

    sudo systemctl stop supervisor
  2. Make a backup of your supervisord file:

    sudo cp /etc/supervisor/conf.d/mayan-edms.conf /etc/supervisor/conf.d/mayan-edms.conf.bck
  3. Make a backup of your database:

    Use the respective backup command for the database:

  4. Upgrade to the latest pip version:

    sudo --user=mayan /opt/mayan-edms/bin/pip install --upgrade pip
  5. Remove deprecated requirements:

    sudo --user=mayan curl --output /tmp/removals.txt \
    && sudo --user=mayan /opt/mayan-edms/bin/pip uninstall --requirement /tmp/removals.txt --yes
  6. Update the Mayan EDMS Python package:

    sudo --user=mayan /opt/mayan-edms/bin/pip install mayan-edms==4.4.5

    the requirements will also be updated automatically.

  7. Update the Redis configuration to serve at least 3 databases:


    databases ...


    databases 3
  8. Restart Redis for the changes to take effect:

    sudo systemctl restart redis
  9. Edit the config file at /opt/mayan-edms/media/config.yml:




    LOCK_MANAGER_BACKEND: mayan.apps.lock_manager.backends.redis_lock.RedisLock
    LOCK_MANAGER_BACKEND_ARGUMENTS: {'redis_url':'redis://:mayanredispassword@<IP address of Redis server>:6379/2'}
  10. Update the supervisord configuration file. Replace the environment variables values shown here with your respective settings. This step will refresh the supervisord configuration file with the new queues and the latest recommended layout:

    sudo --user=mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \
    /opt/mayan-edms/bin/ platformtemplate supervisord | sudo sh -c "cat > /etc/supervisor/conf.d/mayan-edms.conf"
  11. Edit the supervisord configuration file and update any setting specific to your installation:

    sudo vi /etc/supervisor/conf.d/mayan-edms.conf
  12. Migrate existing database schema and static media files with:

    sudo --user=mayan MAYAN_MEDIA_ROOT=/opt/mayan-edms/media/ \
    /opt/mayan-edms/bin/ performupgrade
  13. Start supervisord:

    sudo systemctl start supervisor
  14. Clear the browser cache to avoid loading old web assets.

The upgrade procedure is now complete.


If you observe the errors:

  • mayan.apps.file_caching.models.CachePartitionFile.DoesNotExist: CachePartitionFile matching query does not exist.


  • FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/mayan/document_file_storage/...

follow the solution outlined in the troubleshooting section: After upgrade to version 4.0

Backward incompatible changes

  • None

Issues closed