BETA versions are not always available, e.g. just after a new version has been officially released. Also, the version numbers may be different, e.g. there may be a newer version of SyncBackPro as a fix may only be relevant for SyncBackPro.
| New (Pro): Scripts can now be written in JavaScript syntax (Insider Access). This is JavaScript syntax, not a full JavaScript runtime, so code copied from the web or an AI may need changes |
| New (Pro): New script function SBSystem.GetSecret (Insider Access): a script can get a value from a secrets manager, so passwords and tokens no longer need to be written into the script. The Manage Secrets window has a new right-click item, "Copy Reference for Scripts". Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBProfiles.RunProfileAfter (Insider Access): a script can run another profile once the current profile has finished, for example to run an offsite copy only if the backup succeeded. If the profile is in a group, the group waits for it. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBRunning.SendNotification (Insider Access): a script can send an email using the profile's email settings, so the script never needs to know the email password. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBProfiles.RunProfileAndWait (Insider Access): a script can run another profile now, wait for it to finish and get its result, for example to run the offsite copy only if the local backup succeeded. An optional time limit stops the waiting but leaves the profile running. Stopping the current profile also stops the profile it is waiting for. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBProfiles.StopProfile (Insider Access): a script can stop a running profile or group, as the Stop button does, including one running in another SyncBack process. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBProfiles.IsProfileRunning (Insider Access): a script can check whether a profile or group is running. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script functions SBSystem.GetFreeSpace and SBRunning.GetFreeSpace (Insider Access): a script can check the free space on any drive or network share, or on the profile's own source or destination (including FTP and cloud storage), for example to stop a backup when the destination is nearly full. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBProfiles.GetLastRunResult (Insider Access): a script can get the result of a profile's last run and its error message. A profile that has never run gives ELR_None, a missing profile gives ELR_UnknownProfile, and a group gives ELR_None because each of its profiles has its own result. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBProfiles.GetLastRunTime (Insider Access): a script can get the date and time of a profile's last run, or 0 if it has never run. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBProfiles.GetGroupMembers (Insider Access): a script can list the profiles in a group, one per line, in run order. Optionally, a group inside the group is replaced by its profiles, and each profile is listed only once. A name that is not a group gives an empty string. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.FindDriveByLabel (Insider Access): a script can find the drive (for example E:\) whose volume label matches, which is useful for a USB drive whose drive letter changes. The label ignores case, and the wildcards * and ? can be used. If several drives match, the one with the lowest drive letter is returned. If none match, an empty string is returned. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.FindDrivesByLabel (Insider Access): a script can get every drive whose volume label matches, one per line. The label ignores case, and the wildcards * and ? can be used. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.GetVolumeSerial (Insider Access): a script can get the volume serial number (for example 1A2B-3C4D) of the drive that holds a path. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.HTTPRequest (Insider Access): a script can send an HTTP or HTTPS request with any method (for example GET, PUT or DELETE) and with headers such as an Authorization header, so it can call REST APIs and webhooks that CallWebhook cannot. It returns the status code and the response, with a timeout set by the script and a 10 MB limit on the response. Use it with SBSystem.GetSecret so that API tokens are not stored in the script. If the running profile uses a proxy for its cloud storage, that proxy is used. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.RegExMatch (Insider Access): a script can check whether text, for example a file name or a line of a log, matches a regular expression. Case can optionally be ignored. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.RegExReplace (Insider Access): a script can replace every part of a text that matches a regular expression. The replacement can include parts of the match, for example $1. Case can optionally be ignored. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.AppendStringToFile (Insider Access): a script can add text to the end of a file, for example to keep its own CSV file or log. The file is created if it does not exist. Scripts in profiles that copy files in parallel can use it at the same time without their lines getting mixed up. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.HashString (Insider Access): a script can get the MD5, SHA-1, SHA-256, SHA-384 or SHA-512 hash of some text. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.HMAC_SHA256 (Insider Access): a script can sign text with a secret key (HMAC-SHA256), for example to sign a webhook call made with SBSystem.HTTPRequest. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.FindFiles (Insider Access): a script can list the files in a folder that match a mask (for example *.docx), optionally including subfolders. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.GetEnv (Insider Access): a script can read a Windows environment variable. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.ExpandVariables (Insider Access): a script can expand SyncBack and Windows variables in some text, as profile settings do. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script functions SBSystem.IsProcessRunning and SBSystem.WaitForProcessExit (Insider Access): a script can check whether a program is running, or wait for it to close (for example Outlook before backing up its data file). If a path is given, a program with the same name whose path cannot be read (for example another user's program when SyncBack is not running as administrator) counts as a match. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script functions SBSystem.StartService, SBSystem.StopService and SBSystem.GetServiceState (Insider Access): a script can start or stop a Windows service, for example a database before a backup, and check its state. Starting and stopping need administrator rights. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.Notify (Insider Access): a script can show a Windows notification, with the SyncBack name and icon, without waiting for anyone to click it. Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): New script function SBSystem.CompressFolder (Insider Access): a script can zip a folder and its subfolders, optionally encrypted with a password (AES-256). Pascal, Basic and JavaScript scripts only (not VBScript or JScript) |
| New (Pro): JSON.parse and JSON.stringify (Insider Access) can now also be used in Pascal and Basic scripts (they were already in JavaScript scripts) |
| New: Ask A.I. shortcut: press Ctrl+F1 in any SyncBack window. Nothing is sent anywhere: the question is only copied to the clipboard. |
| New: Ask A.I. About the Last Run: right-click a profile whose last run failed or had file errors to copy a question asking what went wrong and how to fix it. Ctrl+F1 and Help > Ask A.I. now also include the selected profile's last result, its last error message and up to 3 file errors, with paths and names replaced by placeholders. Nothing is sent anywhere: the question is only copied to the clipboard. |
| New: HTML logs now have an Ask A.I. link beside errors and warnings (at most 10 per log, one for each different message). Clicking it copies a question about that message for your AI assistant, with paths and names replaced by placeholders. Nothing is sent anywhere. To turn the links off, untick "Add Ask A.I. links to errors and warnings in the log file (HTML only)" on the Log page of the profile's settings |
| New: Email a Support Ticket now lets you choose: write the email yourself, ask your AI assistant first, or have your AI assistant help you write the request in English. The text for your AI assistant is only copied to the clipboard. |
| New: Modern Standby and wake timer warnings |
| New: Schedules can also run when the computer resumes. On a schedule's Settings tab, tick "Also run the task when the computer resumes from sleep or hibernation" |
| New: A schedule can now run during Windows automatic maintenance (the new Maintenance tab in the schedule window) |
| Updated: Windows Vista, Windows Server 2008, and Windows 7 / Windows Server 2008 R2 without SP1 are no longer supported. On Windows 7 and Windows Server 2008 R2, SP1 is required. |
| Updated: Dark style tooltips now have a lighter background and a visible border |
| Updated: Password Backup (Insider Access) improvements: the window now explains why it opened, and marks the passwords that still need backing |
| Updated: Dropbox, OneDrive (Personal), Google Drive and Gmail now uses PKCE. Thanks to security researcher kta1kri for reporting this issue. |
| Updated (Pro): Signing in to Dropbox, OneDrive (Personal) or Box no longer requires copying and pasting an authorisation code. SyncBackPro now receives the code directly from your browser |
| Updated (Pro): OneDrive (Personal) users will have to reauthorize |
| Updated: Log now reports files and folders that exist in both locations under names that differ only in Unicode form (usually names with accents created on a Mac or on a NAS used by Macs). SyncBack treats these as different files |
| Updated: Email a Support Ticket now fills in your SyncBack and Windows versions, the selected profile's type, its last result and up to 3 file errors from its last run |
| Updated: "Disable Hibernate/Standby" in the Preferences menu is now "Keep Computer Awake While Profiles Run", and it now also works on Modern Standby computers. It is now on by default for everyone, including anyone who had turned it off. |
| Updated (Pro): Scripting engine updated (Pascal and Basic scripts work as before) |
| Fixed: On scheduled runs, profiles using UNC path with username and password could cause a failed Windows logon (Event 4625) on the server before SyncBack connected with the profile's credentials |
| Fixed: When a profile is set to run when files change on a network share, SyncBack now connects with the profile's username and password before watching the share (SyncBackSE and SyncBackPro) |
| Fixed: FTP (DevArt): giving the error "FTP Error=202 (seFTPServerError (265): 202 UTF8 mode is always enabled. No need to send this command)" |
| Fixed: Email a Support Ticket cut the subject short if the description contained & or #, and lost line breaks in the email |
| Fixed: Log emails now use the email proxy settings. Before, only the Test button in the profile's email settings used them. If a profile has the email proxy ticked with out-of-date proxy details, its log emails will fail until the proxy details are corrected. |
| Fixed: If the log email failed, the profile's run scripts could run on the program's main thread instead of the profile's own thread |
| Fixed: When several folders or files were selected in the File & Folder Selection window, the right-click options to exclude or include folders with this name, or files with this extension, only added a filter for the first one |
| Fixed: In the File & Folder Selection window, pressing Delete with a folder that no longer exists and something inside it both selected could crash SyncBack |
| Fixed: In the File & Folder Selection window, renaming a file you had added yourself (F2 or double-click) stored its path wrongly until the window was reopened |
| Fixed: If saving the selections in the File & Folder Selection window failed, the window still closed as if they had been saved. It now stays open |
| Fixed: In the File & Folder Selection window, Open with a file and a folder both selected opened the file twice |
| Fixed: In the File & Folder Selection window, importing a selection file and then pressing Cancel threw the import away without the usual "changes will be lost" warning |
| Fixed: Windows notifications from SyncBack running as administrator were headed with an internal name, for example "2BrightSparks.SyncBackPro.RA", instead of the program's name and icon |
| Fixed: Dutch translation: in the New Profile wizard, the Left folder of a Sync profile was labelled "Koppelingen" instead of "Links". The same problem showed "Deltafilter" for Delta Filters in German and "Password" for Secrets in Italian. Existing Dutch Sync profiles keep the old label until it is renamed in the profile setup |
| Fixed: Translations: Simplified Chinese now uses one term for "profile" (同步任务) throughout (68 strings), and Windows network drive errors about the Windows user profile no longer call it a SyncBack profile. Hong Kong Chinese has 2 similar fixes. Japanese and Korean no longer translate "retrieve" (email or archive retrieval) as "search". A Finnish OpenStack container message no longer uses the word for bucket |
| Fixed (Pro): The MOTD and History example scripts did not work in 64-bit SyncBackPro. They were VBScript and are now Basic |
| Fixed (Pro): The scripting reference used by the Scripting AI Assistant listed functions and properties that do not exist and left out others. It has been corrected and is now replaced on every upgrade |
| Fixed (Pro): Debugging a script during a profile run could corrupt memory and crash SyncBackPro |
| Fixed (Pro): The script editor's Compile button said "The script cannot be installed" for any error. It now says "The script has an error" |
| Fixed (Pro): The script functions CallWebhookEx and MoveFile stopped the script with the error "Method expects argument ... as variable reference" every time they were called |
| Fixed (Pro): CallWebhookEx now returns the response from the web server, as documented, instead of only the status text (for example OK) |
| Fixed (Pro): In scripts, reading a list item through an untyped variable (for example var L; then L[i] on a TStringList) could return the wrong item or fail with "Variable is not an array" or "Invalid class typecast". This affected 32-bit and 64-bit SyncBackPro and Pascal, Basic and JavaScript scripts. The cause was a bug in the third-party scripting engine, which SyncBackPro now patches. L.Strings[i] and typed variables were never affected |