The support forum

Release 78

Aug 29, 2017

Release at a glance

⦁    Completely reworked file/folder exclusion/inclusion module
⦁    Added support for "quiet times" in the scheduler
⦁    Added support for verbose reporting of configuration issues

Notable fixes

⦁    Fixed an issue with monthly schedules
⦁    Fixed an issue with handling out-of-space condition
⦁    Fixed an issue with the "scroll to last error" UI feature
⦁    Fixed an issue with preserving delta state when copying errors out

Smaller changes

⦁    Periodic backups can now be scheduled for Feb 29th
⦁    Auto-updates will now wait until the backup engine is idle
⦁    .bzvol folder is now excluded by default
⦁    All .ini files now start with an UTF-8 byte-order-mark

Important changes from later 77.xx releases

⦁    Speeded up the scanning of remote shares

⦁    New mode for email alerts - "on changes and errors"

⦁    Periodic scheduling fallback for faulty real-time jobs

⦁    Support for grouping jobs into scheduling queues

Aug 29, 2017

Completely reworked file/folder exclusion/inclusion module

The way exclusion/inclusion rules work got a major overhaul resulting in a simpler and more flexible filtering logic.

        Details are here -

An immediate effect of this change is that the point-and-click part of the "Backup What" window now supports _including_ items in _excluded_ folders and vice verse.

        Details are here -

Aug 29, 2017

Added support for "quiet times" in the scheduler

It's now possible to suppress scheduled and real-time backups from running on specific dates/times.

        Details are here -

Aug 29, 2017

Added support for verbose reporting of configuration issues

Prior to this release Bvckup 2 performed certain sanity checks of backup jobs when it was loading them (e.g. that the source location is specified) and _it did not load jobs_ that failed these checks.

However over the years the program accumulated quite a few ini-only features that come with fairly complicated configuration requirements. The freshly introduced "quiet times" is a good example.

Starting with this release the program *will* load a misconfigured job. It will then log relevant complaints, disable the job and keep it disabled until reported issues are resolved and the program is restarted (or the job is reloaded via the command line).

        It looks like this -

Aug 29, 2017

Notable fixes

⦁    Fixed an issue with monthly schedules - in some rare cases it would calculate the time of next run that was off.

⦁    Fixed an issue with handling out-of-space condition - more specifically, with very large backups and in the presence of large swap files generated by the scanning module. Now it gracefully complains instead of panicking, just as it should.

⦁    Fixed an issue with the "scroll to last error" UI feature - more specifically, in a case when the log file was unreadable, so the log viewer got confused as to where exactly it should be scrolling.

⦁    Fixed an issue with preserving delta state - the delta state was incorrectly discarded if a delta copying attempt failed exactly at the first write request. Now it doesn't do that, just retains the state as it was.

Aug 29, 2017

Smaller changes

⦁    Periodic backups can now be scheduled for Feb 29th - that is, added proper support for leap years. Woot.

⦁    Auto-updates will now wait until the backup engine is idle - when the check-for-updates option is set to auto-update, the program will now apply the update only when there are no running jobs. This can be suppressed and the update module can be told to go ahead asap by setting the following bvckup2-engine.ini key:

        updates.conf.auto_update.asap      1

⦁    .bzvol folder is now excluded by default - courtesy of Backblaze

⦁    All .ini files now start with an UTF-8 byte-order-mark - as per

Aug 30, 2017

Release 78.1 & 78.2

⦁    Non-critical backup configuration issues no longer cause the job to be disabled on program's launch. Instead, the program will merely log a complaint and ask to review the problem as time permits.

⦁    Resolved an issue with validation of filtering rules when they are being converted to a new format. In particular, the program would complain that "verbose rule sequence" is invalid if the filtering mode was set to "start with a blank list".

Sep 01, 2017

Release 78.3

⦁    Reduced log verbosity during the scanning phase. Now the rule matches are logged only if the rule reverses the default action for the item, i.e. if its parent folder is set to include and the rule says "exclude" or vice verse.

⦁    Patched scanning module to not descend into excluded folders if these are excluded with a "final" rule. This should speed things up a bit in certain cases.

⦁    Resolved an issue with real-time monitoring when the monitoring is set up _while the backup is running_, e.g. when a manual job is started, then its type is changed to real-time and then the run is cancelled. Prior to this patch Bvckup 2 would've tried to set up the monitoring twice, noticed that and shut itself down as a precaution. No more of this.

⦁    Resolved an issue with monthly scheduling.

Sep 10, 2017

Release 78.4

⦁    Resolved an issue with the UI spamming for feedback.
      This as per

This was caused by a bug in handling of deprecated INI items. Older versions used to store the bitmask of all shown notifications in a key called "show_once". A couple of years ago this key was renamed to "messages_shown". The old key was still read and processed, but it was marked as read-only and was never written out.

When a "feedback" message is shown, the "messages_shown" mask is updated and its INI key is marked to be written out. The bug was that 78.x releases would mark the _old_ key (because it came first on the internal list) rather than the new key. The old key was read-only, so nothing got actually put into the INI => the UI kept asking for feedback on every restart.

Sep 18, 2017

Release 78.5

⦁    Added support for OneDrive reparse points - recent updates to W10 rolled out a newer version of OneDrive that now uses reparse points to inject its principle folder into the file system. This change tells Bvckup 2 to process this folder as a regular directory. For the context see [1].

⦁    Added new default exclusion for a file internal to OneDrive - a zero-sized file called .849C9593-D756-4E56-8D6E-42412F2A707B with System and Hidden attributes is now excluded from the backups by default.

⦁    Added .ini support for specifying share passwords in plaintext - this is as per [2]. For a password settings (such as the one for a share or an SMTP server login) it's now possible to specify the password in the INI file in plaintext. This is done by starting the right-hand part with ! sign, e.g.

        conf.dst_net_user             guest
        conf.dst_net_pass             !SuperSecret

Note that passwords are always stored obfuscated, so the plaintext will be replaced with an obfuscated version the next time bvckup2 saves the INI file.

⦁    Fixed a small issue with error handling in the delta copier - one of the internal self-consistency checks was too strict and erroneously fired when a file needed updating at an offset of 0 and the write request failed immediately.


Oct 04, 2017

Release 78.6

⦁    Added support for copying NTFS alternate data streams on files. See here for details -

NOTE that streams on *folders* are NOT replicated or processed in any way. This is by design, but it's subject to change in later releases.

⦁    Reworked the [More Options] > [Copy Also] section of backup settings. See here for details -

⦁    Reworked how security attributes (owner, group, DACL, SACL) are cloned. Previously this was done with NtQuery/SetSecurityObject from Native API and it was setting each piece separately. Now it uses Get/SetSecurityInfo from Win32 API and it queries and sets all required bits in one go.

⦁    Switching back to desktop mode now unconditionally removes "Bvckup 2 Service" user account if it exists. Previously, it was removing this account only if it was still used by the bvckup2 service. This led to an issue when the service was switched to run under another account and the app was switched to the desktop mode. At this point trying to switch the app back to the service mode would fail (as a precaution) as the "Bvckup 2 Service" account would already be there.

⦁    Added support for 0xA000001D reparse point type, it is now ignored by default, as per

⦁    Fixed an issue with reading plaintext passwords from the INI files, as per

⦁    Fixed an exclusion rule for OneDrive internal file to actually _exclude_ the file rather than _include_ it, as per

Oct 05, 2017

Release 78.7

⦁    Re-reworked how security attributes are copied to the backup. For the context, see here -

Oct 08, 2017

Release 78.8

⦁    Resolved an issue with recording file timestamps in snapshot.

This had to do with 78.6 and 78.7 trying to reduce the number of kernel requests it makes when copying file/folder meta info (timestamps, attributes, etc.) They would first try to use certain API that is usually available except for some cases (such as Samba based shares). For these cases there’s a fallback option that it a bit more verbose but known to work unconditionally. Now, the irony is that the fallback option wasn’t correctly reading back timestamps off backup copies, so when they got recorded in the snapshot (to be used on the next run) they remained at zeroes, causing affected file to always appear as modified.

⦁    Reworked how the file system API support is tested

Tangentially related to the above. Earlier releases would check if the meta can be retrieved *and* set using this faster API as a *single* test. This wasn't a very smart thing to do, because the test would fail if the source location happens to be read-only. So this release splits this test into two and detects API support for Get and Set operations separately.

Oct 19, 2017

Release 78.9

⦁    Added an option for running a backup on program's start.

This can be enabled on per-job basis by setting the following entry in job's settings.ini to 1:

        conf.run_on_engine_start                           1

See for how to do this.

⦁    Added an option for running a backup when it exits "Waiting for the device" state. For example, when a removable backup drive is plugged into the machine.

This can be enabled on per-job basis by setting the following entry in job's settings.ini to 1:

        conf.run_on_device_arrival                         1

See for how to do this.

⦁    Added a message to the report of "Switch mode" failures to cover the case when an older instance of Bvckup2 service is pending removal, because it has a Properties window open in Service Manager.

⦁    Resolved an "access denied" issue when updating zero-sized files.

When Bvckup 2 sees an empty file, it uses a simpler code to back it up, e.g. it doesn't bother with the data copying loop, etc. In recent releases it also adheres to the "least privilege" principle when requesting access to the source/backup copies and so it wasn't asking for full "write" access when processing zero-sized files, because no actual _writing_ is planned.

Apparently, in some cases "write" access still needs to be requested and if it's not, then the file access request fails with "access denied". Fixed now.

⦁    Resolved an issue with the appearance of a _static_ version of the systray icon used in "Busy" state. See the last item here for the context -

⦁    Resolved an issue with the system tray icon not showing alerts for missed backups on program's launch _if_ the program is set to start minimized.

Dino :

Oct 20, 2017

conf.run_on_device_arrival                         1

Nice :-)

Oct 24, 2017

Release 78.10

⦁    Added support for new OneDrive version distributed with Windows 10 Fall Creators Update. See for the context.

⦁    Reworked "Backup Settings > Backup What" file/folder browser to show the content of supported reparse points, including new OneDrive folder.

⦁    Reworked backup engine to clear Hidden attribute off the backup copy of files before working with them. Previously, the engine only cleared the ReadOnly attribute in this way. Kudos to Rens W. for reporting this one.

⦁    Reworked pre/post command processing to allow merely launching commands and to also tolerate timeouts when the job is set not to care about command's return values. Kudos to SEKCobra for reporting this one -

Nov 09, 2017

Release 78.11

⦁    Resolved an issue with $time_attempted variable not getting expanded when sending "Missed a backup run" email alerts. Kudos to Ian, as per

Nov 26, 2017

Release 78.12

⦁    Added context fpr "DigestSymlink failed" errors logged during the scanning phase. Now shows the exact item this applies to as well as the target item the link is pointing at. As per -

⦁    Added an option for customizing location of the file used to save destination file index (a "snapshot") between the backups. By default it is stored in the backup's configuration directory, but in some cases it makes more sense to save elsewhere, e.g. with the backup itself.

When the file is indeed stored with the backup, it will be automatically ignored by the engine when it scans destination.

This is a per-job setting and it is controlled by the following key -

        conf.scanning.snapshot_file   X:\save\it\here\snapshot.dat

Note - this should be a full _file_ name, not just a path to a folder.

See for how to find and edit job's settings.ini file.

⦁    Weekday-based quiet periods now don't require the repeat interval. It can still be specified (in 1 week multiple), but if it's not, then it is assumed to be 1 week. For example, previously it was required to say

         conf.quiet_time    Monday 12:34, 10 hours, 1 week

whereby now it's possible to shorten it to just

         conf.quiet_time    Monday 12:34, 10 hours

For context, see -

Nov 27, 2017

Release 78.13

⦁    Resolved an issue with backups getting stuck in the Scanning phase, as per

This had to do with a module responsible for multi-threaded processing of streams of homogeneous tasks, e.g. of a "scan this folder" type. This in turn was caused by the prep work for R79, which, if all goes as planned, will introduce an option of fully parallel backup processing built on top of this new threading engine.

*** If you are on version 78.12, the update is strongly recommended ***

Dec 04, 2017

Release 78.14

⦁    Added an option for blocking system reboots such as those imposed by Windows Updates while backups are running. See for details.

Dec 05, 2017

Release 78.15

⦁    Resolved an issue with backups getting stuck in the Scanning phase, as per

Part two of the issue resolved in 78.13. Manifested itself on the machines where thread spawning was somewhat slower than on average. Resolved now.

Dec 08, 2017

Release 78.16

⦁    Resolved an issue with saving a snapshot of destination index when destination scan is cancelled mid-way through, whereby the snapshot should've not been saved. Obviously.

⦁    Resolved an issue in a caching layer of the swap module [1], whereby entries that crossed a page boundary might've had their on-disk image saved incorrectly. This might've potentially led to swap-related errors or even a full-blown application crash.

⦁    Starting with this release, we now build an alternative version of the setup package that includes an _uncompressed_ 64-bit binary. This is due to a rare (and currently unidentified) issue with upx compressor as per [2]. The uninstaller and 32-bit bvckup2.exe in this setup package are still compressed.

This version is distributed on as-needed basis only. If we ask you to switch to this version, then you will be automatically put on a dedicated update channel, meaning that "upx-less" installs will receive "upx-less" updates.


Jan 08, 2018

Release 78.17

⦁    The engine now defaults to blocking system reboots when there is one or more backups are running. This is consistent with a similar (and older) setting that prevents the system sleeping under the same conditions.

See for details on how to override this behavior.

Jan 15, 2018

Release 78.18

⦁    Fixed an issue with an advanced scanning module override - more specifically, the "final" qualifier for exclude/include rules. See this post for the context -

⦁    Fixed an issue in delta copier that led to bogus "Unicorn sighted" messages. See this post for the context -

⦁    Fixed an issue with switching back into the desktop mode when some process holds a reference to %ProgramData%\Bvckup2\engine directory, e.g. by having a log file open for viewing in some other program.

Prior to the fix, an attempt to switch the mode would (correctly) fail with "Something went wrong", but the rollback procedure did not restart the service as it should've. So the UI ended up in an intermediate state - it was running, but not connected to the engine and showing no jobs on the main list.

This is no more. Rollback code now restarts the service, so the program properly shifts back into a fully operational state.

⦁    Added code to cancel sending of an email alert after 2 minutes. The timeout interval is configurable and it is controlled by the following setting in engine\bvckup2-engine.ini file:

        alerts.smtp.send_timeout    120

Jan 24, 2018

Release 78.19

⦁    Added support for not overwriting newer files in backups. It is now possible to set a job to suppress updating of backup copies when the backup copy is newer than its source. See this topic for details -

⦁    Added support for templating configuration of new jobs.

Previously, it was possible to customize defaults for a new backup job by using a couple of INI files on the UI side. This was nice and all, but it was (a) one file too many (b) it should've been done on the engine side as the engine is an authoritative source of all job-related things.

This release fixes this, dramatically improving the inner beauty of how jobs are initialized, loaded, etc. Details are to follow and once they are written up, I'll link them from here.

⦁    Added support for global override.ini for all backup jobs.

This is a part two of the job initialization rework. It's now possible to mass-tweak settings in all backup jobs using the following global override file:


It is still possible to override settings for a specific job only using the following file:


Global overrides are applied first, job-specific ones - second.

In an exciting turn of events, global overrides are now also applied to the configuration template used for new backups.

⦁    Added support for "Ctrl" override to Simulate command.

Holding Ctrl button down when starting a job forces the program to NOT use any of the cached information. In particular, this discards destination snapshot if present (forcing a rescan of destination), re-queries file system information from both source and destination volumes and runs the maintenance of the archive.

With this release is also supported for simulated runs, in simulated way.

⦁    Fixed an issue with wildcard inclusion rules.

More specifically, the filtering module rework in the original 78 release broke on particular case -

    (1) "Start with an empty list" mode
    (2) Manual "include" filter with an absolute wildcarded path, e.g.

The program tried parsing this pattern as a well-formed file system path and it failed because * is not a valid path symbol. This caused it to not descend into specified directories, unless there were other rules that triggered a full-tree scan. Long story - short, kudos to Michael B. for reporting, this is resolved now.

⦁    Tweaked handling of local read-only source volumes.

Previously, if Bvckup 2 had no write access to the source location, its "created timestamps" test would fail and it would assume that these timestamps are not supported by the source. This would happen, for example, when backing up C:\Windows folder without Admin privileges.

As of this release, and as a stop-gap measure, Bvckup 2 will assume that "created" timestamps are supported if the volume is local... based on the assumption that read-only ext3 volumes aren't really very common in Windows setups.

⦁    "Export configuration" now grabs several additional files.

More specifically, it now preserves various override.ini files that may be present in the config folders.

⦁    Files and folders are now processed in alphabetical order.

This is of no importance except for the aesthetical one. Previously, the program would sort item names by length first and alphabetically second. This made the comparison marginally faster, but it also caused "hh.exe" to be processed before "abcde.exe".

PS. It's one of those things that are hard to spot, but once you've seen them, it's then becomes impossible to ignore.

Alex Pankratov :

Jan 27, 2018

(moved post by cyrux to

Feb 02, 2018

Release 78.20

⦁    Resolved an issue with the "Export configuration" feature.

      As per -

⦁    Resolved an issue with sometimes not shutting down running
      backups gracefully on reboots and logoffs.

      As per -

⦁    Tweaked the start-at-logon arrangements when running with
      Admin privileges.

In this case the program is started using an at-logon task that is registered with Windows' Task Scheduler. Prior to this release this task was named "Bvckup 2". Tasks names must be unique, so if you were using the program under two user accounts, each wanting to start it at-logon and as-admin, then both of them would try and create this task, effectively undoing counterpart's arrangements. Meaning that only one user will have the program to start at-logon.

Ideally, they should've been adding the task if it didn't exist or merely add another at-logon trigger to an existing task otherwise. The same with removing the task - remove the trigger, if no more left, then remove the task itself.

This is neat and all, but it doesn't work when users are starting the program with different command-line arguments or using different program binaries. That's certainly a very marginal sub-case, but still no reason not to support it cleanly.

Long story short, as of this release the at-logon task is now named "Bvckup 2 (for user@domain)" and a separate task is created for each user that needs it.
Topic is locked.

New topic

Made by IO Bureau in Switzerland

Updates Newsletter
Blog & RSS
Follow Twitter
Miscellanea Press kit
Company Imprint

Legal Terms