[SOLVED] Storage not initialized when clock is off

This is a repository I’ve backed up successfully in the past, but haven’t backed up recently. It uses the S3/Wasabi backend. Today when I attempted to start a backup from the command line, Duplicacy displayed the “storage has not been initialized” error:

ERROR STORAGE_NOT_CONFIGURED The storage has not been initialized

I went through the following steps:

  1. Checking the backend keys
  2. Checking the encryption password
  3. Searching the forum
  4. Running Duplicacy with debugging output enabled
  5. Checking the storage settings in the Duplicacy preferences file
  6. Upgrading Duplicacy to the latest version
  7. Confirming that the config file exists on the backend
  8. Connecting to the backend from a different computer
  9. Downloading the config file directly using curl

This step revealed that the Wasabi backend was returning a RequestTimeTooSkewed error:

The difference between the request time and the current time is too large.

I checked the system time and discovered that it was 19 minutes off. This backend allows a maximum difference of 15 minutes. After correcting the system time the backup ran normally.

Hopefully this information will be useful to someone.

3 Likes

Was there anything in duplicacy log? If not — it’s a bug, and needs to be fixed. The error returned from backend should bubble up to the user to make it actionable.

Duplicacy reported an error and aborted as it should have. The error message was the generic The storage has not been initialized. More information about the underlying error would have been helpful. However I realize it’s difficult for a program that supports a variety of backends (like rclone or duplicacy) to propagate that information in a uniform manner.

Ultimately, the problem was between my system and the backend. Even curl wasn’t working. For that reason I’d hesitate to call this a bug in duplicacy. Better error reporting would be nice to have though!

The duplicacy output looked like this:

$ duplicacy -log backup -stats
2021-04-20 07:42:21.533 INFO STORAGE_SET Storage set to s3://us-east-1@s3.wasabisys.com/****
Enter S3 Access Key ID:****
Enter S3 Secret Access Key:****
Enter storage password:****
2021-04-20 07:44:12.792 ERROR STORAGE_NOT_CONFIGURED The storage has not been initialized
$

Here is the response I received through curl:

<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>RequestTimeTooSkewed</Code><Message>The difference between the request time and the current time is too large.</Message><RequestTime>Tue, 20 Apr 2021 08:38:33 -0700</RequestTime><ServerTime>2021-04-20T15:57:06Z</ServerTime><MaxAllowedSkewMilliseconds>900000</MaxAllowedSkewMilliseconds><RequestId>F36574E9CC6EA304</RequestId><HostId>****/****</HostId></Error>

Yes, I meant the bug is to drop the information important for triage and to print the misleading message. Failure to connect is not the same as storage not initialized. No message is better than misleading message.

1 Like