Failed to start seafile server after Migration to PRO

After migrating a Seafile CE installation to PRO (following the guide Migration from Seafile Community - Seafile Admin Manual ) , Seafile inside the seafile container is not starting. The logs show:

*** Running /etc/my_init.d/01_create_data_links.sh...
*** Booting runit daemon...
*** Runit started as PID 14
*** Running /scripts/enterpoint.sh...
2026-06-17 09:39:51 Waiting Nginx 
nginx: [warn] conflicting server name "" on 0.0.0.0:80, ignored
2026-06-17 09:39:51 Nginx ready 
2026-06-17 09:39:51 This is an idle script (infinite loop) to keep container running. 
nginx: [warn] conflicting server name "" on 0.0.0.0:80, ignored
[2026-06-17 09:39:51] Skip running setup-seafile-mysql.py because there is existing seafile-data folder.

Starting seafile server, please wait ...
Failed to start seafile server
Traceback (most recent call last):
  File "/scripts/start.py", line 91, in <module>
    main()
  File "/scripts/start.py", line 76, in main
    call('{} start'.format(get_script('seafile.sh')))
  File "/scripts/utils.py", line 71, in call
    return subprocess.check_call(*a, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '/opt/seafile/seafile-pro-server-13.0.12/seafile.sh start' returned non-zero exit status 1.

I’m able to reproduce this error on different machines, following the same migration procedure.

  • Stop Seafile (docker compose down)
  • Change /opt/seafile/.env, additionally use elasticsearch.yml in COMPOSE_FILE, add SEAFILE_ELASTICSEARCH_IMAGE and SEAFILE_ELASTICSEARCH_VOLUME, change SEAFILE_IMAGE to use pro image
  • Change /opt/seafile-data/seafile/conf/seafevents.conf and add [INDEX] section

I manually tried to run seafile.sh start with bash verbose mode and could spot this:

+ LD_LIBRARY_PATH=/opt/seafile/seafile-pro-server-13.0.12/seafile/lib/:/opt/seafile/seafile-pro-server-13.0.12/seafile/lib64:
+ /opt/seafile/seafile-pro-server-13.0.12/seafile/bin/seaf-server -F /opt/seafile/conf -d /opt/seafile/seafile-data -l /opt/seafile/logs/seafile.log -P /opt/seafile/pids/seaf-server.pid -p /opt/seafile/seafile-pro-server-13.0.12/runtime -f -L /opt/seafile
+ [[ false = \t\r\u\e ]]
+ sleep 1
+ /opt/seafile/seafile-pro-server-13.0.12/seafile-monitor.sh
+ pgrep -f seaf-server
+ echo 'Failed to start seafile server'
Failed to start seafile server

I find no errors or hints in the logs. Please advise, thanks :slight_smile:

Wow. I think I found the reason. I did not expect this.

It seems to be caused by the number of users vs. the allowed users in the license file.

I have a license file for 9 users but Seafile detected 10 users in the database. I wouldn’t have guessed a hard cut/failure to start the system. Seen this WARNING in seafile.log:

[2026-06-16 19:47:04] [WARNING] ../common/user-mgr.c(130): The number of users exceeds limit, max 9, current 10
[2026-06-16 19:47:04] [WARNING] seafile-session.c(699): Failed to init user manager.

Once I manually disabled some users, I was able to start the container.

Would be appreciated if this situation would be logged as ERROR, not WARNING and clearly state that Seafile will not start due to a user number mismatch.

Thanks for reporting the issue. We will improve it in the next release.