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 be written in JavaScript syntax (Insider Access). Not a full JavaScript runtime, so code from the web or an AI may need changes |
| New (Pro): Script function SBSystem.GetSecret (Insider Access, not VBScript/JScript): get a password or token from a secrets manager instead of writing it in the script. New right-click item "Copy Reference for Scripts" in Manage Secrets |
| New (Pro): Script function SBProfiles.RunProfileAfter (Insider Access, not VBScript/JScript): run another profile after the current one finishes, e.g. offsite copy only if the backup succeeded. If it is in a group, the group waits for it |
| New (Pro): Script function SBRunning.SendNotification (Insider Access, not VBScript/JScript): send an email using the profile's email settings, so the script never needs the email password |
| New (Pro): Script function SBProfiles.RunProfileAndWait (Insider Access, not VBScript/JScript): run another profile, wait for it and get its result. Optional time limit stops the waiting (profile keeps running), and stopping the current profile also stops the other one |
| New (Pro): Script function SBProfiles.StopProfile (Insider Access, not VBScript/JScript): stop a running profile or group, like the Stop button, even in another SyncBack process |
| New (Pro): Script function SBProfiles.IsProfileRunning (Insider Access, not VBScript/JScript): check if a profile or group is running |
| New (Pro): Script functions SBSystem.GetFreeSpace and SBRunning.GetFreeSpace (Insider Access, not VBScript/JScript): check free space on any drive or share, or on the profile's source or destination (incl. FTP and cloud). E.g. stop a backup when the destination is nearly full |
| New (Pro): Script function SBProfiles.GetLastRunResult (Insider Access, not VBScript/JScript): get a profile's last run result and error message. Never run or a group gives ELR_None, missing profile gives ELR_UnknownProfile |
| New (Pro): Script function SBProfiles.GetLastRunTime (Insider Access, not VBScript/JScript): get the date and time of a profile's last run (0 if never run) |
| New (Pro): Script function SBProfiles.GetGroupMembers (Insider Access, not VBScript/JScript): list a group's profiles in run order, one per line. Can expand groups inside the group (no duplicates), and a non-group gives an empty string |
| New (Pro): Script function SBSystem.FindDriveByLabel (Insider Access, not VBScript/JScript): find the drive (e.g. E:\) by volume label, useful for USB drives whose letter changes. Ignores case, allows * and ?, lowest drive letter wins, empty string if none |
| New (Pro): Script function SBSystem.FindDrivesByLabel (Insider Access, not VBScript/JScript): get all drives matching a volume label, one per line. Ignores case, allows * and ? |
| New (Pro): Script function SBSystem.GetVolumeSerial (Insider Access, not VBScript/JScript): get the volume serial number (e.g. 1A2B-3C4D) of the drive holding a path |
| New (Pro): Script function SBSystem.HTTPRequest (Insider Access, not VBScript/JScript): send HTTP/HTTPS requests with any method and headers (e.g. Authorization) to call REST APIs and webhooks. Returns status and response (script-set timeout, 10 MB max) and uses the profile's cloud proxy if set |
| New (Pro): Script function SBSystem.RegExMatch (Insider Access, not VBScript/JScript): check if text (e.g. a file name or log line) matches a regular expression, optionally ignoring case |
| New (Pro): Script function SBSystem.RegExReplace (Insider Access, not VBScript/JScript): replace every regular expression match in text, with $1 style groups and optional ignore case |
| New (Pro): Script function SBSystem.AppendStringToFile (Insider Access, not VBScript/JScript): append text to a file (created if missing), e.g. your own CSV or log. Safe with parallel file copying |
| New (Pro): Script function SBSystem.HashString (Insider Access, not VBScript/JScript): get the MD5, SHA-1, SHA-256, SHA-384 or SHA-512 hash of text |
| New (Pro): Script function SBSystem.HMAC_SHA256 (Insider Access, not VBScript/JScript): sign text with a secret key (HMAC-SHA256), e.g. for webhook calls with SBSystem.HTTPRequest |
| New (Pro): Script function SBSystem.FindFiles (Insider Access, not VBScript/JScript): list files in a folder matching a mask (e.g. *.docx), optionally with subfolders |
| New (Pro): Script function SBSystem.GetEnv (Insider Access, not VBScript/JScript): read a Windows environment variable |
| New (Pro): Script function SBSystem.ExpandVariables (Insider Access, not VBScript/JScript): expand SyncBack and Windows variables in text, as profile settings do |
| New (Pro): Script functions SBSystem.IsProcessRunning and SBSystem.WaitForProcessExit (Insider Access, not VBScript/JScript): check if a program is running, or wait for it to close (e.g. Outlook before backing up its data file). With a path, a same-named program whose path can't be read (e.g. another user's, without admin) counts as a match |
| New (Pro): Script functions SBSystem.StartService, SBSystem.StopService and SBSystem.GetServiceState (Insider Access, not VBScript/JScript): start or stop a Windows service (e.g. a database before a backup) and check its state. Start and stop need admin rights |
| New (Pro): Script function SBSystem.Notify (Insider Access, not VBScript/JScript): show a Windows notification with the SyncBack name and icon, without waiting for a click |
| New (Pro): Script function SBSystem.CompressFolder (Insider Access, not VBScript/JScript): zip a folder and its subfolders, optionally with an AES-256 password |
| New (Pro): Script functions SBSystem.RegListKeys, SBSystem.RegKeyModified and SBSystem.RegExportValues (Insider Access, not VBScript/JScript): list a registry key's subkeys, get the date and time a key last changed, and export a key's values to a .reg file as regedit does |
| New (Pro): Script function SBSystem.GetDateTaken (Insider Access, not VBScript/JScript): get the date a photo was taken (Exif, HEIC, camera raw) or a video was recorded |
| New (Pro): Script function SBSystem.SQLiteQuery (Insider Access, not VBScript/JScript): run an SQL query on an SQLite database file |
| New (Pro): Script functions SBLocation.Warning and SBLocation.CriticalError (Insider Access, not VBScript/JScript): a location script can now put a warning or an error in the profile's log |
| New (Pro): JSON.parse and JSON.stringify (Insider Access) now also in Pascal and Basic scripts (already in JavaScript) |
| New (Pro): AWS Secrets Manager connections can use an optional custom endpoint (e.g. VPC interface or FIPS), HTTPS only. Blank uses the standard AWS endpoint for the region |
| New (Pro): Five example location scripts (Pascal), installed in the program folder: Vault (stores files so only SyncBack can read them back), Chaos (fails or damages copies on purpose, for testing), Flat Folder (copies a folder tree into one folder, keeping the path in the file name by default), Machine Inventory (read-only files describing the PC) and NASA Images (read-only pictures from the NASA Image and Video Library). Each one's settings are on its own page in the profile setup, so profiles can have different settings. Vault, Flat Folder and NASA Images need Insider Access |
| New (Pro): Five more example location scripts, read-only and set up the same way: Browser Bookmarks (your browsers' bookmarks as .url shortcuts), Registry (registry keys as folders of .reg files), Photos by Date (a photo folder sorted into folders by date taken), Game Saves (every game's saves in a folder named after the game, can also restore) and Event Logs (Windows event logs as .evtx files). All except Game Saves need Insider Access |
| New: Ask A.I. shortcut: Ctrl+F1 in any SyncBack window. Only copies the question to the clipboard, nothing is sent |
| New: Ask A.I. About the Last Run: right-click a profile whose last run failed or had file errors to copy a "what went wrong" question. Ctrl+F1 and Help > Ask A.I. now also add the last result, error and up to 3 file errors (paths and names as placeholders), nothing is sent |
| New: HTML logs have an Ask A.I. link beside errors and warnings (max 10, one per different message) that copies a question with paths and names as placeholders, nothing is sent. Can be turned off on the Log page of the profile settings |
| New: Email a Support Ticket: write it yourself, ask your AI assistant first, or let it help write the request in English. AI text is only copied to the clipboard |
| New: Modern Standby and wake timer warnings |
| New: Schedules can also run when the computer resumes from sleep or hibernation (option on the schedule's Settings tab) |
| New: Schedules can run during Windows automatic maintenance (new Maintenance tab) |
| Updated: Windows Vista and Windows Server 2008 no longer supported. Windows 7 / Windows Server 2008 R2 now need SP1 |
| Updated: Dark style tooltips: lighter background and visible border |
| Updated: Password Backup (Insider Access): window now explains why it opened and marks passwords still needing backup |
| Updated: Dropbox, OneDrive (Personal), Google Drive and Gmail now use PKCE. Thanks to security researcher kta1kri for reporting |
| Updated (Pro): Dropbox, OneDrive (Personal) and Box sign-in no longer needs a copied authorisation code, SyncBackPro gets it from your browser |
| Updated (Pro): OneDrive (Personal) users will have to reauthorize |
| Updated: Log now reports files and folders in both locations whose names differ only in Unicode form (usually accented names from a Mac or a NAS used by Macs). SyncBack treats them as different files |
| Updated: Email a Support Ticket now fills in SyncBack and Windows versions, profile type, last result and up to 3 file errors |
| Updated: "Disable Hibernate/Standby" (Preferences menu) is now "Keep Computer Awake While Profiles Run" and works on Modern Standby. Now on by default for everyone, even if turned off before. |
| Updated (Pro): Scripting engine updated (Pascal and Basic scripts work as before) |
| Fixed: Scheduled runs with a UNC path and username/password could cause a failed Windows logon (Event 4625) on the server before connecting with the profile's credentials |
| Fixed: Run on file change for a network share now connects with the profile's username and password before watching (SyncBackSE and SyncBackPro) |
| Fixed: FTP (DevArt): 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 had & or #, and lost line breaks |
| Fixed: Log emails now use the email proxy settings (before, only the Test button did). If the email proxy is ticked with out-of-date details, log emails fail until they are corrected. |
| Fixed: If the log email failed, run scripts could run on the main thread instead of the profile's thread |
| Fixed: File & Folder Selection: with several items selected, the right-click exclude/include by name or extension only added a filter for the first one |
| Fixed: File & Folder Selection: pressing Delete with a missing folder and something inside it both selected could crash SyncBack |
| Fixed: File & Folder Selection: renaming a file you added (F2 or double-click) stored the wrong path until the window was reopened |
| Fixed: File & Folder Selection: if saving failed, the window still closed. It now stays open |
| Fixed: File & Folder Selection: Open with a file and a folder selected opened the file twice |
| Fixed: File & Folder Selection: Cancel after importing a selection file gave no "changes will be lost" warning |
| Fixed: Windows notifications from SyncBack running as admin showed an internal name (e.g. "2BrightSparks.SyncBackPro.RA") instead of the program name and icon |
| Fixed: Translations: New Profile wizard showed "Koppelingen" instead of "Links" for a Sync profile's Left folder (Dutch), "Deltafilter" for Delta Filters (German) and "Password" for Secrets (Italian). Existing Dutch Sync profiles keep the old label until renamed |
| Fixed: Translations: Simplified Chinese now uses one term for "profile" (同步任务), and Windows user profile errors no longer call it a SyncBack profile (2 similar Hong Kong Chinese fixes). Also fixed "retrieve" in Japanese and Korean, and "bucket" in a Finnish OpenStack message |
| Fixed: A disabled profile (e.g. one in a group that was run) sent a "failed" Pushover or webhook message, or showed a Windows notification set to "Only when errors occur" |
| Fixed: Stopping a profile after its result was saved (e.g. while a run after program was running) turned a successful run into a failed one for Pushover, webhooks, "Run program only if the profile failed", %PROFILEFAILED% and showing the log on failure |
| Fixed (Pro): MOTD and History example scripts did not work in 64-bit SyncBackPro. Converted from VBScript to Basic |
| Fixed (Pro): Scripting reference used by the Scripting AI Assistant listed wrong functions and properties and missed others. Corrected, and now replaced on every upgrade |
| Fixed (Pro): Debugging a script during a profile run could corrupt memory and crash SyncBackPro |
| Fixed (Pro): Script editor Compile button said "The script cannot be installed" for any error. Now says "The script has an error" |
| Fixed (Pro): CallWebhookEx and MoveFile always stopped the script with "Method expects argument ... as variable reference" |
| Fixed (Pro): CallWebhookEx now returns the web server's response, as documented, not just the status text (e.g. OK) |
| Fixed (Pro): Reading a list item through an untyped variable (e.g. 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". Third-party scripting engine bug, now patched (L.Strings[i] and typed variables were never affected) |
| Fixed (Pro): Editing an AWS Secrets Manager connection reset the region list to the first region, so OK changed it. Now keeps the saved region |
| Fixed (Pro): Secrets managers: a missing key in a key/value secret now gives a clear error instead of an empty password. Empty values are now found, JSON null is empty (was "null") and nested JSON is passed as JSON text (was empty) |
| Fixed (Pro): Cloud bandwidth limit now applies to every file. Before, it was ignored for the first 2 seconds of each transfer, and on Amazon S3 (and S3-compatible), Azure, Backblaze B2, Egnyte, Google Storage and Rackspace also for files sent in one piece (under 100 MB by default) |
| Fixed (Pro): A script's page in the profile setup now scrolls when its settings don't fit. Before, the last settings could only be reached by maximizing the window |
| Fixed (Pro): Location script as destination: if its folder did not exist yet, every file directly in it failed on the first run with "Cannot create folder". The folder is now created first, and scripts now get folder paths in the documented form (one backslash between folders, trailing backslash) |
| Fixed (Pro): A run refused by a script (RunDisabledCheck) with NoLog set to True still sent a Pushover message and called the webhook. Refused runs without NoLog still count as failed and send alerts |
| Fixed (Pro): Boolean var and out arguments in scripts came back as 1/0 instead of True/False, so tests like if X = True failed |