Automatic Updates

GlobalForms keeps itself up to date. It checks for new releases, downloads them in the background, and installs them during a maintenance window you control. A backup of the previous version is kept, and GlobalForms rolls back automatically if a new version fails to start.

Automatic updates are available in GlobalForms 10.16 and later, and are turned on by default for new installations.

Update channels

Channel

Who it is for

Stable (default)

Production servers. Receives releases after they have completed early access.

Canary (early access)

Test or staging servers where you want new features and fixes as soon as they are released.

How updates work

  1. Check. When the GlobalForms service starts, and then every hour, it checks for a newer release on its channel.

  2. Download. If a newer release is available, GlobalForms downloads it and verifies the file before staging it. Users are not affected.

  3. Install. During the maintenance window (2:00 to 4:00 AM server time by default), GlobalForms restarts and installs the staged release. The service is unavailable for a short time while this happens.

  4. Back up. Before installing, GlobalForms copies the current version to the backups folder. The two most recent backups are kept.

  5. Roll back if needed. If the new version stops within one minute of starting, GlobalForms restores the previous version automatically.

Some releases contain urgent fixes. These are installed as soon as they are downloaded, without waiting for the maintenance window.

What is kept during an update

Updates replace the GlobalForms program files. These items are always kept:

  • config\local.json (your settings)

  • ssl\ (certificates)

  • files\ (uploaded attachments) and PDFsnapshots\

  • logs\ and backups\

Your forms and submissions are stored in MongoDB and are not affected by program updates.

Any change made to other files in the install folder, including config\default.json, is replaced during an update. Put all of your settings in config\local.json.

Update settings

Update settings are in the updater section of config\local.json. Include only the settings you want to change, then restart the GlobalForms service.

Setting

Default

Description

enabled

true

Set to false to turn off automatic updates.

channel

"stable"

"stable" or "canary"

checkIntervalHours

1

How often to check for updates, in hours

maintenanceWindowStart

"02:00"

Start of the window for installing updates, in 24-hour server time

maintenanceWindowEnd

"04:00"

End of the window. Windows that cross midnight, such as "23:00" to "01:00", are supported.

autoApply

true

Set to false to download updates but install them only when you restart the service yourself

backupRetention

2

Number of previous versions to keep in the backups folder

Example: change the maintenance window

JSON
{
  "updater": {
    "maintenanceWindowStart": "22:00",
    "maintenanceWindowEnd": "23:30"
  }
}

Example: use the Canary channel on a test server

JSON
{
  "updater": {
    "channel": "canary"
  }
}

Updates only move to newer versions. If you switch a server from Canary back to Stable, it stays on its current version until Stable reaches a newer release.

Install updates on your own schedule

  1. Set autoApply to false and restart the service. GlobalForms continues to check for and download updates, but does not install them on its own.

  2. When you are ready to update, restart the GlobalForms service:

    PowerShell
    Restart-Service GlobalForms
    

    If a downloaded update is waiting, it is installed during the restart.

Urgent-fix releases are still installed as soon as they are downloaded.

Check what was installed

  • logs\update-history.json lists each update with its date, the version updated from and to, and the backup that was created.

  • logs\update-failed.txt is created if an update was rolled back automatically.

  • The backups folder contains one folder per backup, named with the version and date, for example backup-v10.20.0-2026-09-02T02-05-11-000Z.

Troubleshooting

Symptom

Cause and fix

The server never updates

Check that updater.enabled is true and that the server can reach https://update.square9.cloud and the npm registry. If autoApply is false, restart the service to install a downloaded update.

Updates install at the wrong time

The maintenance window uses the server's local time. Check the server's time zone and the window settings.

logs\update-failed.txt exists

A new version did not start and GlobalForms returned to the previous version. Contact Square 9 Support with the contents of the logs folder.

A setting disappeared after an update

It was in a file other than config\local.json. Move the setting to local.json.