The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,483 other followers

Ubiquity UniFi SDN – Server status “UniFi Controller is starting up… Please wait a moment”

Posted by jpluimers on 2019/02/22

When your UniFi Cloud Key web interface shows this [] after upgrading:


UniFi Controller is starting up…

Please wait a moment


Then you just ran into a bug which seems to occur most with 5.9.29 of the UniFi software: [] “UniFi Controller is starting up…” “Please wait a moment” “5.9.29” – Google Search

The easiest way is to restore from a backup: this usually works.

For that you need ssh access, which usually is with the ubnt user. But you could have made life more complicated when you followed these:

Steps from [WayBack] UniFi Controller is starting up… Please Wait A Moment – Ubiquiti Networks Community (thanks [] About mrfoxdk – Ubiquiti Networks Community!):

  1. SSH to the Unifi CloudKey
  2. dpkg -P unifi
  3. Open a browser and browse the URL of CloudKey
  4. Login
  5. Press “Install” under UniFi
  6. Wait for the process to complete, and then wait a bit for the service to be brought online.
  7. Recover the configuration backup from the latest backup

Removing and reinstalling the UniFi software, then restore from backup

Step 2 above will purge the unifi software of the cloud key as per dpkg --help:

root@UniFi-CloudKey:~# dpkg --help
Usage: dpkg [<option> ...] <command>

  -i|--install       <.deb file name> ... | -R|--recursive <directory> ...
  --unpack           <.deb file name> ... | -R|--recursive <directory> ...
  -A|--record-avail  <.deb file name> ... | -R|--recursive <directory> ...
  --configure        <package> ... | -a|--pending
  --triggers-only    <package> ... | -a|--pending
  -r|--remove        <package> ... | -a|--pending
  -P|--purge         <package> ... | -a|--pending
  -V|--verify  ...        Verify the integrity of package(s).
  --get-selections [<pattern> ...] Get list of selections to stdout.
  --set-selections                 Set package selections from stdin.
  --clear-selections               Deselect every non-essential package.
  --update-avail [<Packages-file>] Replace available packages info.
  --merge-avail [<Packages-file>]  Merge with info from file.
  --clear-avail                    Erase existing available info.
  --forget-old-unavail             Forget uninstalled unavailable pkgs.
  -s|--status <package> ...        Display package status details.
  -p|--print-avail <package> ...   Display available version details.
  -L|--listfiles <package> ...     List files `owned' by package(s).
  -l|--list [<pattern> ...]        List packages concisely.
  -S|--search <pattern> ...        Find package(s) owning file(s).
  -C|--audit [<package> ...]       Check for broken package(s).
  --add-architecture <arch>        Add <arch> to the list of architectures.
  --remove-architecture <arch>     Remove <arch> from the list of architectures.
  --print-architecture             Print dpkg architecture.
  --print-foreign-architectures    Print allowed foreign architectures.
  --compare-versions <a> <op> <b>  Compare version numbers - see below.
  --force-help                     Show help on forcing.
  -Dh|--debug=help                 Show help on debugging.

  -?, --help                       Show this help message.
      --version                    Show the version.

Use dpkg -b|--build|-c|--contents|-e|--control|-I|--info|-f|--field|
 -x|--extract|-X|--vextract|--fsys-tarfile  on archives (type dpkg-deb --help).

For internal use: dpkg --assert-support-predepends | --predep-package |
  --assert-working-epoch | --assert-long-filenames | --assert-multi-conrep |
  --assert-multi-arch | --assert-versioned-provides.

  --admindir=<directory>     Use <directory> instead of /var/lib/dpkg.
  --root=<directory>         Install on a different root directory.
  --instdir=<directory>      Change installation dir without changing admin dir.
  --path-exclude=<pattern>   Do not install paths which match a shell pattern.
  --path-include=<pattern>   Re-include a pattern after a previous exclusion.
  -O|--selected-only         Skip packages not selected for install/upgrade.
  -E|--skip-same-version     Skip packages whose same version is installed.
  -G|--refuse-downgrade      Skip packages with earlier version than installed.
  -B|--auto-deconfigure      Install even if it would break some other package.
  --[no-]triggers            Skip or force consequential trigger processing.
  --verify-format=<format>   Verify output format (supported: 'rpm').
  --no-debsig                Do not try to verify package signatures.
                             Just say what we would do - don't do it.
  -D|--debug=<octal>         Enable debugging (see -Dhelp or --debug=help).
  --status-fd <n>            Send status change updates to file descriptor <n>.
  --status-logger=<command>  Send status change updates to <command>'s stdin.
  --log=<filename>           Log status changes and actions to <filename>.
                             Ignore dependencies involving <package>.
  --force-...                Override problems (see --force-help).
                             Stop when problems encountered.
  --abort-after <n>          Abort after encountering <n> errors.

Comparison operators for --compare-versions are:
  lt le eq ne ge gt       (treat empty version as earlier than any version);
  lt-nl le-nl ge-nl gt-nl (treat empty version as later than any version);
  < << <= = >= >> >       (only for compatibility with control file syntax).

Use 'apt' or 'aptitude' for user-friendly package management.

It will show you output like this:

root@UniFi-CloudKey:~# dpkg -P unifi
(Reading database ... 21238 files and directories currently installed.)
Removing unifi (5.9.29-11384-1) ...
Purging configuration files for unifi (5.9.29-11384-1) ...
Removing user `unifi' ...
Warning: group `unifi' has no more members.
dpkg: warning: while removing unifi, directory '/usr/lib/unifi' not empty so not removed
Processing triggers for systemd (215-17+deb8u9) ...

Now you need the UniFi Cloud Key IP address:

root@UniFi-CloudKey:~# ip route get | awk '{print $NF; exit}'

Finally, load that IP address in your browser: with either these steps:

Now you can enter the same credentials (usually username ubnt) to logon, to end up in, then follow these steps:

  1. On the left size, click “Maintenance” or browse to
  2. Now click on “Install”, then on “Confirm” to start the instalation:
  3. Now wait for this prompt to disappear:
  4. It will return to the page with an updated UniFi software installation:
  5. As a preparation to restore the most recent back-up, you now can “Stop UnFi”:
  6. Finally, you can restore the most recent firmware back-up:
  7. Like the “Install”, you also have to “Confirm” this:
  8. Now wait during the restore process:

Sometimes you are out of luck:

If that happens, try [WayBack] Solved: Re: Cloud Key Offline, can’t login – Ubiquiti Networks Community:

Updating the firmware

  1. “Start” the UniFi software:
  2. Verify the firmware version:
  3. Verify on-line if there is a newer version (I usually start with [] cloudkey firmware – Google Search)
  4. Sometimes the UI can upgrade, but usually it cannot:
  5. Go back to the main page at (as you cannot
  6. Click on the “Manage” button or go to port https port 8443
  7. This will redirect to
  8. Wait for the firmware to update:
  9. Wait for the device to reboot
  10. Re-logon at
  11. “Stop” the UniFi
  12. “Restore” the most recent Backup
  13. Wait for the restore process to finish which can take up to 5 minutes:
  14. “Start” the UniFi
  15. Wait up to 2 minutes until it has started and the “Stop” button appears (do not click it)
  16. Now the device should be on-line at


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: