Why does duplicacy keep failing due to invalid licence when I have a valid license?

Doesn’t this kind of defeat the purpose of even the best backup app?

cat ~/.duplicacy-web/logs/duplicacy_web.log | grep license
2021/03/12 15:23:15 A new license has been downloaded for Christophs-Mac-mini
2021/05/10 21:34:16 A new license has been downloaded for Mac-mini
2021/11/01 23:28:39 127.0.0.1:49949 POST /activate_license
2021/11/01 23:28:39 A new license has been downloaded for Mac-mini
2021/11/24 23:30:02 A new license has been downloaded for Mac-mini
2021/12/28 03:02:36 A new license has been downloaded for Mac-mini
2022/01/20 03:26:16 A new license has been downloaded for Mac-mini
2022/02/12 04:00:02 A new license has been downloaded for Mac-mini
2022/03/07 04:00:01 A new license has been downloaded for Mac-mini
2022/03/30 09:00:05 A new license has been downloaded for Mac-mini
2022/04/22 19:00:03 A new license has been downloaded for Mac-mini
2022/05/15 20:00:03 A new license has been downloaded for Mac-mini
2022/06/07 21:00:02 A new license has been downloaded for Mac-mini
2022/06/18 16:07:01 A new license has been downloaded for mac-mini
2022/07/11 22:00:03 Failed to request a license: activate
2022/07/11 23:00:01 Failed to request a license: activate
2022/07/12 00:00:02 Failed to request a license: activate
2022/07/12 01:00:01 Failed to request a license: activate
2022/07/12 02:00:02 Failed to request a license: activate
2022/07/12 03:00:04 Failed to request a license: activate
2022/07/12 04:00:02 Failed to request a license: activate
2022/07/12 05:00:03 Failed to request a license: activate
2022/07/12 06:00:03 Failed to request a license: activate
2022/07/12 07:00:02 Failed to request a license: activate
2022/07/12 08:00:02 Failed to request a license: activate
2022/07/12 09:00:02 Failed to request a license: activate
2022/07/12 10:00:03 Failed to request a license: activate
2022/07/12 11:00:01 Failed to request a license: activate
2022/07/12 12:00:02 Failed to request a license: activate
2022/07/12 13:00:02 Failed to request a license: activate
2022/07/12 14:00:02 Failed to request a license: activate
2022/07/12 15:00:03 Failed to request a license: activate
2022/07/12 16:00:02 Failed to request a license: activate
2022/07/12 17:00:02 Failed to request a license: activate
2022/07/12 18:00:01 Failed to request a license: activate
2022/07/12 19:02:17 Failed to request a license: activate
2022/07/12 20:13:00 Failed to request a license: activate
2022/07/12 21:01:44 Failed to request a license: activate
2022/07/12 22:08:43 Failed to request a license: activate
2022/07/12 23:00:02 Failed to request a license: activate
2022/07/13 00:00:02 Failed to request a license: activate
2022/07/13 01:07:13 Failed to request a license: activate
2022/07/13 02:00:02 Failed to request a license: activate
2022/07/13 03:00:02 Failed to request a license: activate
2022/07/13 04:00:01 Failed to request a license: activate
2022/07/13 05:00:01 Failed to request a license: activate
2022/07/13 06:00:02 Failed to request a license: activate
2022/07/13 07:00:01 Failed to request a license: activate
2022/07/13 08:00:02 Failed to request a license: activate
2022/07/13 09:00:03 Failed to request a license: activate
2022/07/13 10:00:01 Failed to request a license: activate
2022/07/13 11:00:01 Failed to request a license: activate
2022/07/13 12:00:02 Failed to request a license: activate
2022/07/13 13:00:02 Failed to request a license: activate
2022/07/13 14:00:01 Failed to request a license: activate
2022/07/13 15:00:03 Failed to request a license: activate
2022/07/13 16:00:01 Failed to request a license: activate
2022/07/13 17:00:02 Failed to request a license: activate
2022/07/13 18:00:02 Failed to request a license: activate
2022/07/13 19:00:02 Failed to request a license: activate
2022/07/13 20:00:02 Failed to request a license: activate
2022/07/13 21:00:03 Failed to request a license: activate
2022/07/13 22:00:02 Failed to request a license: activate
2022/07/13 23:00:01 Failed to request a license: activate
2022/07/14 00:00:02 Failed to request a license: activate
2022/07/14 01:00:03 Failed to request a license: activate
2022/07/14 02:00:02 Failed to request a license: activate
2022/07/14 03:00:01 Failed to request a license: activate
2022/07/14 04:00:02 Failed to request a license: activate
2022/07/14 05:00:01 Failed to request a license: activate
2022/07/14 06:00:01 Failed to request a license: activate
2022/07/14 07:00:02 Failed to request a license: activate
2022/07/14 08:00:02 Failed to request a license: activate
2022/07/14 09:00:02 Failed to request a license: activate
2022/07/14 10:00:02 Failed to request a license: activate
2022/07/14 11:00:02 Failed to request a license: activate
2022/07/14 12:00:05 Failed to request a license: activate
2022/07/14 13:00:02 Failed to request a license: activate
2022/07/14 14:00:02 Failed to request a license: activate
2022/07/14 15:00:03 Failed to request a license: activate
2022/07/14 16:00:02 Failed to request a license: activate
2022/07/14 17:00:02 Failed to request a license: activate
2022/07/14 18:00:02 Failed to request a license: activate
2022/07/14 19:00:02 Failed to request a license: activate
2022/07/14 20:00:02 Failed to request a license: activate
2022/07/14 21:00:02 Failed to request a license: activate
2022/07/14 22:00:03 Failed to request a license: activate
2022/07/14 23:00:02 Failed to request a license: activate
2022/07/15 00:00:05 Failed to request a license: activate
2022/07/15 01:00:01 Failed to request a license: activate
2022/07/15 02:00:03 Failed to request a license: activate
2022/07/15 03:00:02 Failed to request a license: activate
2022/07/15 04:00:05 Failed to request a license: activate
2022/07/15 05:00:10 Failed to request a license: activate
2022/07/15 06:00:01 Failed to request a license: activate
2022/07/15 07:00:02 Failed to request a license: activate
2022/07/15 08:00:03 Failed to request a license: activate
2022/07/15 09:00:02 Failed to request a license: activate
2022/07/15 10:00:03 Failed to request a license: activate
2022/07/15 11:00:02 Failed to request a license: activate
2022/07/15 12:00:02 Failed to request a license: activate
2022/07/15 13:09:05 Failed to request a license: activate
2022/07/15 14:00:13 Failed to request a license: activate
2022/07/15 15:00:02 Failed to request a license: activate
2022/07/15 16:00:02 Failed to request a license: activate
2022/07/15 17:00:01 Failed to request a license: activate
2022/07/15 18:00:02 Failed to request a license: activate
2022/07/15 19:00:02 Failed to request a license: activate
2022/07/15 20:00:02 Failed to request a license: activate
2022/07/15 21:00:02 Failed to request a license: activate
2022/07/15 22:00:02 Failed to request a license: activate
2022/07/15 23:00:02 Failed to request a license: activate
2022/07/16 00:00:05 Failed to request a license: activate
2022/07/16 01:00:01 Failed to request a license: activate
2022/07/16 02:00:10 Failed to request a license: activate
2022/07/16 03:00:02 Failed to request a license: activate
2022/07/16 04:00:02 Failed to request a license: activate
2022/07/16 05:00:03 Failed to request a license: activate
2022/07/18 16:00:02 Failed to request a license: activate
2022/07/18 19:00:01 A new license has been downloaded for Mac-mini
2022/07/23 09:46:02 127.0.0.1:50727 POST /activate_license
2022/07/23 09:46:03 A new license has been downloaded for mac-mini
2022/08/15 10:00:02 A new license has been downloaded for mac-mini
2022/09/07 13:00:02 A new license has been downloaded for mac-mini
2022/09/30 13:00:03 A new license has been downloaded for mac-mini
2022/10/23 11:00:02 Failed to request a license: activate
2022/10/23 12:00:02 Failed to request a license: activate
2022/10/27 10:00:02 Failed to request a license: activate
2022/10/27 11:00:02 Failed to request a license: activate
2022/10/27 12:00:02 Failed to request a license: activate
2022/10/27 13:00:02 Failed to request a license: activate
2022/10/27 14:00:02 Failed to request a license: activate
2022/10/27 15:00:02 Failed to request a license: activate
2022/10/27 16:00:03 Failed to request a license: activate
2022/10/27 17:00:01 Failed to request a license: activate
2022/10/27 18:00:02 Failed to request a license: activate
2022/10/27 19:00:02 Failed to request a license: activate
2022/10/27 20:00:03 Failed to request a license: activate
2022/10/27 21:00:01 Failed to request a license: activate
2022/10/27 22:00:02 Failed to request a license: activate
2022/10/27 23:00:01 Failed to request a license: activate
2022/10/28 00:00:03 Failed to request a license: activate
2022/10/28 01:00:02 Failed to request a license: activate
2022/10/28 02:00:01 Failed to request a license: activate
2022/10/28 03:00:01 Failed to request a license: activate
2022/10/28 04:00:02 Failed to request a license: activate
2022/10/28 05:00:02 Failed to request a license: activate
2022/10/28 06:00:02 Failed to request a license: activate
2022/10/28 07:00:02 Failed to request a license: activate
2022/10/28 08:00:03 Failed to request a license: activate
2022/10/28 09:00:02 Failed to request a license: activate
2022/10/28 10:00:02 Failed to request a license: activate
2022/10/28 11:00:02 Failed to request a license: activate
2022/10/28 12:00:02 Failed to request a license: activate
2022/10/28 13:00:02 Failed to request a license: activate
2022/10/28 14:00:02 Failed to request a license: activate
2022/10/28 15:00:02 Failed to request a license: activate
2022/10/28 16:00:02 Failed to request a license: activate
2022/10/28 17:00:02 Failed to request a license: activate
2022/10/28 18:00:02 Failed to request a license: activate
2022/10/28 19:00:01 Failed to request a license: activate
2022/10/28 20:00:02 Failed to request a license: activate
2022/10/28 21:00:06 Failed to request a license: activate
2022/10/28 22:00:02 Failed to request a license: activate
2022/10/28 23:00:01 Failed to request a license: activate
2022/10/29 00:00:02 Failed to request a license: activate
2022/10/29 01:00:01 Failed to request a license: activate
2022/10/29 13:52:46 A new license has been downloaded for mac-mini
2022/11/03 18:00:03 Failed to request a license: activate
2022/11/03 19:00:02 Failed to request a license: activate
2022/11/03 20:00:02 Failed to request a license: activate
2022/11/03 21:00:02 Failed to request a license: activate
2022/11/03 22:00:02 Failed to request a license: activate
2022/11/03 23:00:01 Failed to request a license: activate
2022/11/04 00:00:03 Failed to request a license: activate
2022/11/04 01:00:03 Failed to request a license: activate
2022/11/04 02:00:03 Failed to request a license: activate
2022/11/04 03:00:02 Failed to request a license: activate
2022/11/04 04:00:01 Failed to request a license: activate
2022/11/04 05:00:01 Failed to request a license: activate
2022/11/04 06:00:02 Failed to request a license: activate
2022/11/04 07:00:02 Failed to request a license: activate
2022/11/04 08:00:02 Failed to request a license: activate
2022/11/04 09:00:02 Failed to request a license: activate
2022/11/04 10:00:01 Failed to request a license: activate
2022/11/04 11:00:02 Failed to request a license: activate
2022/11/04 12:00:02 Failed to request a license: activate
2022/11/04 13:00:02 Failed to request a license: activate
2022/11/04 14:00:02 Failed to request a license: activate
2022/11/04 15:00:01 Failed to request a license: activate
2022/11/04 16:00:01 Failed to request a license: activate
2022/11/04 17:00:03 Failed to request a license: activate
2022/11/04 18:00:02 Failed to request a license: activate
2022/11/04 19:00:02 Failed to request a license: activate
2022/11/04 20:00:02 Failed to request a license: activate
2022/11/04 21:00:03 Failed to request a license: activate
2022/11/04 22:00:03 Failed to request a license: activate
2022/11/04 23:00:02 Failed to request a license: activate
2022/11/05 00:00:02 Failed to request a license: activate
2022/11/05 01:00:03 Failed to request a license: activate
2022/11/16 18:05:56 Failed to request a license: activate
2022/11/16 18:06:43 Failed to request a license: activate
2022/11/16 18:06:56 Failed to request a license: activate
2022/11/16 18:07:22 Failed to request a license: activate
2022/11/16 18:09:32 Failed to request a license: activate
2022/11/16 18:09:36 Failed to request a license: activate
2022/11/16 18:10:12 127.0.0.1:57325 POST /activate_license
2022/11/16 18:10:12 A new license has been downloaded for Mac-mini
2022/11/21 13:00:02 Failed to request a license: activate
2022/11/21 14:00:03 Failed to request a license: activate
2022/11/21 15:00:02 Failed to request a license: activate
2022/11/21 16:00:01 Failed to request a license: activate
2022/11/21 17:00:03 Failed to request a license: activate
2022/11/21 18:00:02 Failed to request a license: activate
2022/11/21 19:00:03 Failed to request a license: activate
2022/11/21 20:00:05 Failed to request a license: activate
2022/11/21 21:00:02 Failed to request a license: activate
2022/11/21 22:00:03 Failed to request a license: activate
2022/11/21 23:00:02 Failed to request a license: activate
2022/11/22 00:00:02 Failed to request a license: activate
2022/11/22 01:00:02 Failed to request a license: activate
2022/11/22 02:00:02 Failed to request a license: activate
2022/11/22 03:00:02 Failed to request a license: activate
2022/11/22 04:00:02 Failed to request a license: activate
2022/11/22 05:00:01 Failed to request a license: activate
2022/11/22 06:00:02 Failed to request a license: activate
2022/11/22 07:00:02 Failed to request a license: activate
2022/11/22 08:00:09 Failed to request a license: activate
2022/11/22 09:00:01 Failed to request a license: activate
2022/11/22 10:00:02 Failed to request a license: activate
2022/11/22 11:00:02 Failed to request a license: activate
2022/11/22 12:00:02 Failed to request a license: activate
2022/11/22 13:00:02 Failed to request a license: activate
2022/11/22 14:00:01 Failed to request a license: activate
2022/11/22 15:00:01 Failed to request a license: activate
2022/11/22 16:00:02 Failed to request a license: activate
2022/11/22 17:00:02 Failed to request a license: activate
2022/11/22 18:00:02 Failed to request a license: activate
2022/11/22 19:00:03 Failed to request a license: activate
2022/11/22 20:00:03 Failed to request a license: activate
2022/11/22 21:00:01 Failed to request a license: activate
2022/11/22 22:00:02 Failed to request a license: activate
2022/11/22 23:00:02 Failed to request a license: activate
2022/11/23 00:00:03 Failed to request a license: activate
2022/11/23 01:00:01 Failed to request a license: activate
2022/11/23 02:00:02 Failed to request a license: activate
2022/11/23 03:00:02 Failed to request a license: activate
2022/11/23 04:00:02 Failed to request a license: activate
2022/11/23 05:00:02 Failed to request a license: activate
2022/11/23 06:00:02 Failed to request a license: activate
2022/11/23 07:00:01 Failed to request a license: activate
2022/11/23 08:00:14 Failed to request a license: activate
2022/11/23 09:00:02 Failed to request a license: activate
2022/11/23 10:00:03 Failed to request a license: activate
2022/11/23 11:00:02 Failed to request a license: activate
2022/11/23 12:00:01 Failed to request a license: activate
2022/11/23 13:00:02 Failed to request a license: activate
2022/11/23 14:00:02 Failed to request a license: activate
2022/11/23 15:00:01 Failed to request a license: activate
2022/11/23 16:00:01 Failed to request a license: activate
2022/11/23 17:00:02 Failed to request a license: activate
2022/11/23 18:00:03 Failed to request a license: activate
2022/11/23 19:00:01 Failed to request a license: activate
2022/11/23 20:00:02 Failed to request a license: activate
2022/11/23 21:00:02 Failed to request a license: activate
2022/11/23 22:00:02 Failed to request a license: activate
2022/11/23 23:00:02 Failed to request a license: activate
2022/11/24 00:00:02 Failed to request a license: activate
2022/11/24 01:00:02 Failed to request a license: activate
2022/11/24 02:00:02 Failed to request a license: activate
2022/11/24 03:00:01 Failed to request a license: activate
2022/11/24 04:00:02 Failed to request a license: activate
2022/11/24 05:00:02 Failed to request a license: activate
2022/11/24 06:00:02 Failed to request a license: activate
2022/11/24 07:00:02 Failed to request a license: activate
2022/11/24 08:00:03 Failed to request a license: activate
2022/11/24 09:00:02 Failed to request a license: activate
2022/11/24 10:00:02 Failed to request a license: activate
2022/11/24 11:00:01 Failed to request a license: activate
2022/11/24 12:00:02 Failed to request a license: activate
2022/11/24 13:00:02 Failed to request a license: activate
2022/11/24 14:00:01 Failed to request a license: activate
2022/11/24 15:00:02 Failed to request a license: activate
2022/11/24 16:00:03 Failed to request a license: activate
2022/11/24 17:00:02 Failed to request a license: activate
2022/11/24 18:00:02 Failed to request a license: activate
2022/11/24 19:00:01 Failed to request a license: activate
2022/11/24 20:00:02 Failed to request a license: activate
2022/11/24 21:00:02 Failed to request a license: activate
2022/11/24 22:00:02 Failed to request a license: activate
2022/11/24 23:00:02 Failed to request a license: activate
2022/11/25 00:00:02 Failed to request a license: activate
2022/11/25 01:00:02 Failed to request a license: activate
2022/11/25 02:00:02 Failed to request a license: activate
2022/11/25 03:00:02 Failed to request a license: activate
2022/11/25 04:00:01 Failed to request a license: activate
2022/11/25 05:00:02 Failed to request a license: activate
2022/11/25 06:00:02 Failed to request a license: activate
2022/11/25 07:00:02 Failed to request a license: activate
2022/11/25 08:00:10 Failed to request a license: activate
2022/11/25 09:00:01 Failed to request a license: activate
2022/11/25 10:00:02 Failed to request a license: activate
2022/11/25 11:00:02 Failed to request a license: activate
2022/11/25 12:00:01 Failed to request a license: activate
2022/11/25 13:00:02 Failed to request a license: activate
2022/11/25 14:00:01 Failed to request a license: activate
2022/11/25 15:00:01 Failed to request a license: activate
2022/11/25 16:00:02 Failed to request a license: activate
2022/11/25 17:00:01 Failed to request a license: activate
2022/11/25 18:00:02 Failed to request a license: activate
2022/11/25 19:00:02 Failed to request a license: activate
2022/11/25 20:00:03 Failed to request a license: activate
2022/11/25 21:00:01 Failed to request a license: activate
2022/11/25 22:00:01 Failed to request a license: activate
2022/11/25 23:00:02 Failed to request a license: activate
2022/11/26 00:00:03 Failed to request a license: activate
2022/11/26 01:00:03 Failed to request a license: activate
2022/11/26 02:00:03 Failed to request a license: activate
2022/11/26 03:00:03 Failed to request a license: activate
2022/11/26 04:00:01 Failed to request a license: activate
2022/11/26 05:00:02 Failed to request a license: activate
2022/11/26 06:00:02 Failed to request a license: activate
2022/11/26 07:00:01 Failed to request a license: activate
2022/11/26 08:00:03 Failed to request a license: activate
2022/11/26 09:00:02 Failed to request a license: activate
2022/11/26 10:00:02 Failed to request a license: activate
2022/11/26 11:00:01 Failed to request a license: activate
2022/11/26 12:00:02 Failed to request a license: activate
2022/11/26 13:00:02 Failed to request a license: activate
2022/11/26 14:00:03 Failed to request a license: activate
2022/11/26 15:00:03 Failed to request a license: activate
2022/11/26 16:00:02 Failed to request a license: activate
2022/11/26 17:00:02 Failed to request a license: activate
2022/11/26 18:00:01 Failed to request a license: activate
2022/11/26 19:00:02 Failed to request a license: activate
2022/11/26 20:00:02 Failed to request a license: activate
2022/11/26 21:00:02 Failed to request a license: activate
2022/11/26 22:00:02 Failed to request a license: activate
2022/11/26 23:00:02 Failed to request a license: activate
2022/11/27 00:00:03 Failed to request a license: activate
2022/11/27 01:00:03 Failed to request a license: activate
2022/11/27 02:00:02 Failed to request a license: activate
2022/11/27 03:00:01 Failed to request a license: activate
2022/11/27 04:00:02 Failed to request a license: activate
2022/11/27 05:00:02 Failed to request a license: activate
2022/11/27 06:00:02 Failed to request a license: activate
2022/11/27 07:00:01 Failed to request a license: activate
2022/11/27 08:00:02 Failed to request a license: activate
2022/11/27 09:00:02 Failed to request a license: activate
2022/11/27 10:00:02 Failed to request a license: activate
2022/11/27 11:00:01 Failed to request a license: activate
2022/11/27 12:00:01 Failed to request a license: activate
2022/11/27 13:00:02 Failed to request a license: activate
2022/11/27 14:00:02 Failed to request a license: activate
2022/11/27 15:00:02 Failed to request a license: activate
2022/11/27 16:00:02 Failed to request a license: activate
2022/11/27 17:00:01 Failed to request a license: activate
2022/11/27 18:00:02 Failed to request a license: activate
2022/11/27 19:00:02 Failed to request a license: activate
2022/11/27 20:00:01 Failed to request a license: activate
2022/11/27 21:00:01 Failed to request a license: activate
2022/11/27 22:00:02 Failed to request a license: activate
2022/11/27 23:00:02 Failed to request a license: activate
2022/11/28 00:00:03 Failed to request a license: activate
2022/11/28 01:00:03 Failed to request a license: activate
2022/11/28 02:00:02 Failed to request a license: activate
2022/11/28 03:00:02 Failed to request a license: activate
2022/11/28 04:00:02 Failed to request a license: activate
2022/11/28 05:00:03 Failed to request a license: activate
2022/11/28 06:00:02 Failed to request a license: activate
2022/11/28 07:00:01 Failed to request a license: activate
2022/11/28 08:00:03 Failed to request a license: activate
2022/11/28 09:00:01 Failed to request a license: activate
2022/11/28 10:00:03 Failed to request a license: activate
2022/11/28 11:00:01 Failed to request a license: activate
2022/11/28 12:00:03 Failed to request a license: activate
2022/11/28 13:00:01 Failed to request a license: activate
2022/11/28 14:00:01 Failed to request a license: activate
2022/11/28 15:00:02 Failed to request a license: activate
2022/11/28 16:00:02 Failed to request a license: activate
2022/11/28 17:00:02 Failed to request a license: activate
2022/11/28 18:00:03 Failed to request a license: activate
2022/11/28 19:00:02 Failed to request a license: activate
2022/11/28 20:00:03 Failed to request a license: activate
2022/11/28 21:00:02 Failed to request a license: activate
2022/11/28 22:00:02 Failed to request a license: activate
2022/11/28 23:00:02 Failed to request a license: activate
2022/11/29 00:00:03 Failed to request a license: activate
2022/11/29 01:00:02 Failed to request a license: activate
2022/11/29 02:00:02 Failed to request a license: activate
2022/11/29 03:00:03 Failed to request a license: activate
2022/11/29 04:00:03 Failed to request a license: activate
2022/11/29 05:00:01 Failed to request a license: activate
2022/11/29 06:00:02 Failed to request a license: activate
2022/11/29 07:00:02 Failed to request a license: activate
2022/11/29 08:00:01 Failed to request a license: activate
2022/11/29 09:00:03 Failed to request a license: activate
2022/11/29 10:00:01 Failed to request a license: activate
2022/11/29 11:00:01 Failed to request a license: activate
2022/11/29 12:00:02 Failed to request a license: activate
2022/11/29 13:00:01 Failed to request a license: activate
2022/11/29 14:00:02 Failed to request a license: activate
2022/11/29 15:00:01 Failed to request a license: activate
2022/11/29 16:00:01 Failed to request a license: activate
2022/11/29 17:00:02 Failed to request a license: activate
2022/11/29 18:00:02 Failed to request a license: activate
2022/11/29 19:00:02 Failed to request a license: activate
2022/11/29 20:00:02 Failed to request a license: activate
2022/11/29 21:00:02 Failed to request a license: activate
2022/11/29 22:00:01 Failed to request a license: activate
2022/11/29 23:00:03 Failed to request a license: activate
2022/11/30 00:00:04 Failed to request a license: activate
2022/11/30 01:00:02 Failed to request a license: activate
2022/11/30 02:00:03 Failed to request a license: activate
2022/11/30 03:00:02 Failed to request a license: activate
2022/11/30 04:00:02 Failed to request a license: activate
2022/11/30 05:00:03 Failed to request a license: activate
2022/11/30 06:00:02 Failed to request a license: activate
2022/11/30 07:00:01 Failed to request a license: activate
2022/11/30 08:00:01 Failed to request a license: activate
2022/11/30 09:00:01 Failed to request a license: activate
2022/11/30 10:00:02 Failed to request a license: activate
2022/11/30 11:00:02 Failed to request a license: activate
2022/11/30 12:00:11 Failed to request a license: activate
2022/11/30 13:00:02 Failed to request a license: activate
2022/11/30 14:00:01 Failed to request a license: activate
2022/11/30 15:00:01 Failed to request a license: activate
2022/11/30 16:00:02 Failed to request a license: activate
2022/11/30 17:00:03 Failed to request a license: activate
2022/11/30 18:00:02 Failed to request a license: activate
2022/11/30 19:00:02 Failed to request a license: activate
2022/11/30 20:00:01 Failed to request a license: activate
2022/11/30 21:00:01 Failed to request a license: activate
2022/11/30 22:00:02 Failed to request a license: activate
2022/11/30 23:00:03 Failed to request a license: activate
2022/12/01 00:00:03 Failed to request a license: activate
2022/12/01 01:00:03 Failed to request a license: activate
2022/12/01 02:00:02 Failed to request a license: activate
2022/12/01 03:00:02 Failed to request a license: activate
2022/12/01 04:00:02 Failed to request a license: activate
2022/12/01 05:00:02 Failed to request a license: activate
2022/12/01 06:00:02 Failed to request a license: activate
2022/12/01 07:00:02 Failed to request a license: activate
2022/12/01 08:00:04 Failed to request a license: activate
2022/12/01 09:00:03 Failed to request a license: activate
2022/12/01 10:00:02 Failed to request a license: activate
2022/12/01 11:00:03 Failed to request a license: activate
2022/12/01 12:00:01 Failed to request a license: activate
2022/12/01 13:00:02 Failed to request a license: activate
2022/12/01 14:00:02 Failed to request a license: activate
2022/12/01 15:00:02 Failed to request a license: activate
2022/12/01 16:00:01 Failed to request a license: activate
2022/12/01 17:00:03 Failed to request a license: activate
2022/12/01 18:00:01 Failed to request a license: activate
2022/12/01 19:00:02 Failed to request a license: activate
2022/12/01 20:00:03 Failed to request a license: activate
2022/12/01 21:00:01 Failed to request a license: activate
2022/12/01 22:00:01 Failed to request a license: activate
2022/12/01 23:00:03 Failed to request a license: activate
2022/12/02 00:00:03 Failed to request a license: activate
2022/12/02 01:00:02 Failed to request a license: activate
2022/12/02 02:00:03 Failed to request a license: activate
2022/12/02 03:00:01 Failed to request a license: activate
2022/12/02 04:00:01 Failed to request a license: activate
2022/12/02 05:00:02 Failed to request a license: activate
2022/12/02 06:00:01 Failed to request a license: activate
2022/12/02 07:00:02 Failed to request a license: activate
2022/12/02 08:00:03 Failed to request a license: activate
2022/12/02 09:00:03 Failed to request a license: activate
2022/12/02 10:00:03 Failed to request a license: activate
2022/12/02 11:00:03 Failed to request a license: activate
2022/12/02 12:00:03 Failed to request a license: activate
2022/12/02 13:00:03 Failed to request a license: activate
2022/12/02 14:00:03 Failed to request a license: activate
2022/12/02 15:00:03 Failed to request a license: activate
2022/12/02 16:00:04 Failed to request a license: activate
2022/12/02 17:00:03 Failed to request a license: activate
2022/12/02 18:00:03 Failed to request a license: activate
2022/12/02 19:00:02 Failed to request a license: activate
2022/12/02 20:00:03 Failed to request a license: activate
2022/12/02 21:00:03 Failed to request a license: activate
2022/12/02 22:00:03 Failed to request a license: activate
2022/12/02 23:00:03 Failed to request a license: activate
2022/12/03 00:00:03 Failed to request a license: activate
2022/12/03 01:00:04 Failed to request a license: activate
2022/12/03 02:00:02 Failed to request a license: activate
2022/12/03 03:00:02 Failed to request a license: activate
2022/12/03 04:00:03 Failed to request a license: activate
2022/12/03 05:00:03 Failed to request a license: activate
2022/12/03 06:00:03 Failed to request a license: activate
2022/12/03 07:00:02 Failed to request a license: activate
2022/12/03 08:00:03 Failed to request a license: activate
2022/12/03 09:00:03 Failed to request a license: activate
2022/12/03 10:00:03 Failed to request a license: activate
2022/12/03 11:00:02 Failed to request a license: activate
2022/12/03 12:00:04 Failed to request a license: activate
2022/12/03 13:00:02 Failed to request a license: activate
2022/12/03 14:00:03 Failed to request a license: activate
2022/12/03 15:00:03 Failed to request a license: activate
2022/12/03 16:00:02 Failed to request a license: activate
2022/12/03 17:00:02 Failed to request a license: activate
2022/12/03 18:00:03 Failed to request a license: activate
2022/12/03 19:00:02 Failed to request a license: activate
2022/12/03 20:00:02 Failed to request a license: activate
2022/12/03 21:00:02 Failed to request a license: activate

This makes no sense. And the forum is full of similar complaints. So why am I even starting another topic?

1 Like

The fix here should be for duplicacy to stop predicating backup on a success of license check.

Right now it’s purely, and pettily punitive: Ah, I can’t check for a license, that means user blocked me from doing so on purpose, definitely to try and cheat their way out of paying the $2/year renewal fee, so I’ll punish them by exposing their data they paid me to protect to data loss by refusing to backup and being very quiet about it (sending email does not help if the problem for the failed license check is connectivity issues). That sounds like the appropriately proportional response. That’ll show them how to not maintain connectivity at all times, looking though logs daily and posting bugs on forums!!

It’s ridiculous, and must be fixed ASAP.

2 Likes

@Christoph are you running dual-boot OS? Your license id kept changing between 2 values. Usually for macOS the license id is pretty reliable and stable.

@saspus the licensing system works quite well from my point of view. The number of complaints vs the number of successful activations without user intervention is pretty low. Of course, the system isn’t perfect, but I’ll keep fixing what is broken and adding improvements to make the flow more smooth.

1 Like

That’s fair. However this can be said about any bug – of course for most users the app works correctly, otherwise it would not have passed tests and not get released in the first place :slight_smile:

The situation, however, when the backup silently stops due to some non-backup related nor user induced failure, should be avoided: safeguarding users’s data is the highest priority, even for that minority of users.

Therefore, while I understand that no software is perfect, including the licensing part of duplicacy, when it fails (for that minority of users) it shall fail gracefully, in a way that does not jeopardize safety of user’s data.

For example, successful license check could authorize that instance of duplicacy for 1 month into the future: this way there would be the whole month after licensing failure to follow up with the user and get the issue corrected, while the backups continue happening. E.g. send them an email after 2 weeks of no checkins. (How to identify that specific instance – generate a file form /dev/urandom upon first launch.)

2 Likes

No dual boot. This is a mac mini just like any other.

Hm, earlier you said

I have no idea, though, why the machine sometimes is mac-mini and sometimes Mac-mini. It is simultaneously connected via wifi and visa ethernet, but to the exact same network.

This sounds like a reasonable suggestion that costs practically nothing.

Perhaps we can even take it a step further and never let the backup fail but shut down the Web UI instead. After all, that is what the license is for, right? The cli version is open source anyway, so why make it stop if license check fails (once!)?

I know, I know, commercial use of the cli requires a license, so my argument is limited to the personal license, but then it would be weird to give non-commercial users a more reliable solution than commercial users (who pay more), hence apply same rule to all.

I understand that you want to protect your business and get paid for your work, but if your business is to offer a reliable backup solution, then that should have a very, very high priority. But now I’ll shut up about tjat part because I have no experience with making money from software. As a customer, my impression is just that companies have generally found more generous licencing policies to work better for them.

I think the commercial potential of duplicacy is so much bigger than what is currently exploited, but the reason why it is not growing more is not the lack of licence checks.

And I don’t think I even had any connectivity issues at all. My server is on the same network and it has been backing up reliably all the time.

While I’ve never had much of a problem with licence activations (not a Mac user), one of my slight peaves is having to manually activate a licence renewal on each client endpoint.

This is much less of a problem on my 3 personal systems with lifetime licenses, but I also manage a handful of commercial Duplicacy and Vertical Backup systems, and it’s become a bit of a chore (especially when renewals are scattered across a year).

Is there a way for Duplicacy to pick up on the new expiry date after it’s been renewed in the customer page? So we don’t have to access the dashboard and do it at both ends?

Incidentally, from a business perspective, offering auto-renewal (as an option, with good email notifications in advance) might be a prudent way forward.

Furthermore, it’s been my wish that the Web UI - somewhen, somehow - could have its source code made available, so that the userbase could help improve the experience. However, I perfectly understand why this isn’t the case. Still, consider that commercial use of the source-available CLI isn’t predicated on a licence check either.

Dunno how much of your revenue is generated through personal versus commercial use, but ISTM most businesses aren’t in the business of skimping on a few $ by hacking backup software - they’ll gladly pay, so long as the solution is robust and hassle-free. Plus many personal users have invested in the Web UI, even if they don’t use it, as a way of supporting development. IMHO, the benefits of opening up and relaxing these restrictions outweighs the potential downsides. Again, I understand why you might think differently, but changing strategy could kill two birds.

Besides, I’ve always thought the plan was that the Web UI could manage other Web UIs (through secure communications - i.e. with API keys, encrypted etc.). At least for businesses, I kinda like the idea that we could centrally manage multiple endpoints from one place, and this is something Acrosync could potentially host, if that feature ever came to fruition. Or maybe just a separate, simpler, web dashboard to monitor backups. Maybe a hosted healthchecks instance, built into Duplicacy?

I very much appreciate the fact we can still use the Web UI to do non-backup related tasks, so would rather the whole of the Web UI not be completely disabled.

Perhaps, if anything, backup schedules revert to daily (instead of more frequent) backups at most and, more importantly…

Duplicacy should have a separate system tray process (so we can always have an icon tray, esp. with service mode), and it should show licence issues with a big red blob. (And ofc fix the machine id thing with Macs :wink: )

1 Like

I believe this is the issue. Unlike other OS, macOS may obtain the host name from the network. You can try to dig into the DHCP settings on your router to see if you can force it to give out the same host name. In the next web GUI version I’ll make the host name case-insensitive.

This is exactly what the licensing system is doing now.

Currently if the license is renewed before the expiry date then Duplicacy should be able to pick up the new expiry date. Usually an email reminder is sent 7 days before the expiry date.

I’m thinking of adding a new graph/table to the dashboard page that shows the last backup times from all backup ids on each storage. If the last backup time is older than a certain time then an email notification will be sent.

Thanks.It would be great if that solves it for me. And even better if that catches all host name hiccups on Macs, but I doubt it. I still think that backups should not be put at risk. The potential cost to the customer and ultimately your business is just to high.

Of this is so, that means the license check has been silently failing not just since the 27 November (or longer, the graph in OP doesn’t show larger time span, which had been annoying me for a while) but it would have failed at least a month before that without issuing even the slightest warning. I have the duplicacy icon in my task bar and see it every day Unlike many other icons, it is not hidden away with Bartender, because I assumed it would warn me when something is going wrong, so the conditions for duplicacy for contacting the user have been ideal, but it kept quiet. I agree that emails should also be sent, but in my setup that isn’t even necessary.

1 Like

I would not do that: This would be swiping the problem to under the rug, silencing the symptoms, and delaying the actual fix. It is not guaranteed that the hostname changes will only be case. There is a variety of misconfigured routers and mDNS servers around, and it will be a mess, you won’t be able (nor should attempt to) to address deficiencies of those services, only to continue using hostname.

Instead, the simple solution would be to start using some unique ID instead (machine ID is the identifier to use, but you can generate your own), while still supporting hostname for old clients who did not update yet. Generate it on first run, save it in the config folder, and display in the UI so the users can copy and paste it in their account. This will require minimum changes in the workflow (users already need to copy paste hostname) and will fix the issue at its root: which is misusing hostname a persistent identifier.

Hmm. The fact that the user did not notice the failure for a month is another problem that requires fixing. Especially in the desktop app usecase – it could have sent push notification after weeks of failed licensed checks.

2 Likes

As I take a closer look, this can’t be true. Look at the log I posted:

After the last update of the license on 16 november, the license check started failing on 21 november and as the screnshot shows backups where already failing on 27 november (or earlier):

If there is a grace period in place, it can’t be one month. Maybe a week.

Yes, what’s the problem with that?

For reference, I am using a TP-Link R605 with Omada network controller.

Nice little device! Looks like they are trying to steal design replicate UniFi success, according to the marketing materials and screenshots. Good for them.

I’m using Ubiquiti Dream Machine, and following one of the updates all of my Macs would get a hostname of a hexadecimal guid overnight. Quite literally, the hostnames were C13E7A67-A703-42EE-9043-63781BBEFCCC, 55D06F25-F611-448F-9889-68651C7B9F79, etc. They fixed it shortly after, but it was quite bizarre. Another illustration that hostname is for network communication, not software licensing.

Edit:
Wow:

Omada and the TP-Link series, for all visuals and usability are almost clones of the Unifi stuff but at a lower cost point.

How can they keep getting away with this… just crazy.

Guys, it’s just bad coding. This board is full of these problems. I’ve got the same problems. It’s crazy that I pay for immature software and have to discuss it on a forum. It’s not the customer’s fault!

1 Like

I think that’s a good point. We are here discussing it and trying to work past it but what the licensing metrics won’t tell the developers is how many people give up and move on to something else.

If the host name of your Mac computer keeps changing when connecting to different networks, that is because macos gets the host name from DHCP servers. You can avoid that by setting the host name manually in terminal: network - How to refuse DHCP Server to change my hostname? - Ask Different

This a poor solution to a problem that seems relatively common with Macs.

(I agree this option is completely daft as far as Apple design decisions is concerned, but normal users can’t be expected to tinker with that stuff.)

From what I’ve seen, the hostname randomly changes case - so why can’t you, at minimum, ignore case when checking the hostname for licencing? It can’t be because it’s exploitable, because you can just do a global tolower() when registering and checking.

Just add the check. There seems to be no desire to figure out why so many people are struggling with this issue, when you can do something about it.

Long term, you really need to think about a better method to check licencing than the hostname. This issue also effects NASs and containers. Why not just add a hostname override or randomly generated machineid?

2 Likes