Diff of the two buildlogs:

--
--- b1/build.log	2025-03-05 03:47:29.338387484 +0000
+++ b2/build.log	2025-03-05 03:52:53.211699974 +0000
@@ -1,6 +1,6 @@
 I: pbuilder: network access will be disabled during build
-I: Current time: Tue Mar  4 15:41:34 -12 2025
-I: pbuilder-time-stamp: 1741146094
+I: Current time: Wed Apr  8 00:10:31 +14 2026
+I: pbuilder-time-stamp: 1775556631
 I: Building the build Environment
 I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz]
 I: copying local configuration
@@ -25,52 +25,84 @@
 dpkg-source: info: applying skip-TestDecrypt.patch
 I: Not using root during the build.
 I: Installing the build-deps
-I: user script /srv/workspace/pbuilder/3263685/tmp/hooks/D02_print_environment starting
+I: user script /srv/workspace/pbuilder/4109899/tmp/hooks/D01_modify_environment starting
+debug: Running on codethink03-arm64.
+I: Changing host+domainname to test build reproducibility
+I: Adding a custom variable just for the fun of it...
+I: Changing /bin/sh to bash
+'/bin/sh' -> '/bin/bash'
+lrwxrwxrwx 1 root root 9 Apr  7 10:10 /bin/sh -> /bin/bash
+I: Setting pbuilder2's login shell to /bin/bash
+I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other
+I: user script /srv/workspace/pbuilder/4109899/tmp/hooks/D01_modify_environment finished
+I: user script /srv/workspace/pbuilder/4109899/tmp/hooks/D02_print_environment starting
 I: set
-  BUILDDIR='/build/reproducible-path'
-  BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other'
-  BUILDUSERNAME='pbuilder1'
-  BUILD_ARCH='arm64'
-  DEBIAN_FRONTEND='noninteractive'
+  BASH=/bin/sh
+  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
+  BASH_ALIASES=()
+  BASH_ARGC=()
+  BASH_ARGV=()
+  BASH_CMDS=()
+  BASH_LINENO=([0]="12" [1]="0")
+  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
+  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
+  BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu")
+  BASH_VERSION='5.2.37(1)-release'
+  BUILDDIR=/build/reproducible-path
+  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
+  BUILDUSERNAME=pbuilder2
+  BUILD_ARCH=arm64
+  DEBIAN_FRONTEND=noninteractive
   DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 '
-  DISTRIBUTION='unstable'
-  HOME='/root'
-  HOST_ARCH='arm64'
+  DIRSTACK=()
+  DISTRIBUTION=unstable
+  EUID=0
+  FUNCNAME=([0]="Echo" [1]="main")
+  GROUPS=()
+  HOME=/root
+  HOSTNAME=i-capture-the-hostname
+  HOSTTYPE=aarch64
+  HOST_ARCH=arm64
   IFS=' 	
   '
-  INVOCATION_ID='d5249227692b42c6b0f4260bfbae65f3'
-  LANG='C'
-  LANGUAGE='en_US:en'
-  LC_ALL='C'
-  MAIL='/var/mail/root'
-  OPTIND='1'
-  PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
-  PBCURRENTCOMMANDLINEOPERATION='build'
-  PBUILDER_OPERATION='build'
-  PBUILDER_PKGDATADIR='/usr/share/pbuilder'
-  PBUILDER_PKGLIBDIR='/usr/lib/pbuilder'
-  PBUILDER_SYSCONFDIR='/etc'
-  PPID='3263685'
-  PS1='# '
-  PS2='> '
+  INVOCATION_ID=8ad8d9adf08f4a5bb11f6c0e7c2036bb
+  LANG=C
+  LANGUAGE=nl_BE:nl
+  LC_ALL=C
+  MACHTYPE=aarch64-unknown-linux-gnu
+  MAIL=/var/mail/root
+  OPTERR=1
+  OPTIND=1
+  OSTYPE=linux-gnu
+  PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path
+  PBCURRENTCOMMANDLINEOPERATION=build
+  PBUILDER_OPERATION=build
+  PBUILDER_PKGDATADIR=/usr/share/pbuilder
+  PBUILDER_PKGLIBDIR=/usr/lib/pbuilder
+  PBUILDER_SYSCONFDIR=/etc
+  PIPESTATUS=([0]="0")
+  POSIXLY_CORRECT=y
+  PPID=4109899
   PS4='+ '
-  PWD='/'
-  SHELL='/bin/bash'
-  SHLVL='2'
-  SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.xYiQxu2e/pbuilderrc_fpxo --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.xYiQxu2e/b1 --logfile b1/build.log golang-github-henrybear327-go-proton-api_1.0.0-4.dsc'
-  SUDO_GID='109'
-  SUDO_UID='104'
-  SUDO_USER='jenkins'
-  TERM='unknown'
-  TZ='/usr/share/zoneinfo/Etc/GMT+12'
-  USER='root'
-  _='/usr/bin/systemd-run'
-  http_proxy='http://192.168.101.4:3128'
+  PWD=/
+  SHELL=/bin/bash
+  SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix
+  SHLVL=3
+  SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.xYiQxu2e/pbuilderrc_6ckR --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.xYiQxu2e/b2 --logfile b2/build.log golang-github-henrybear327-go-proton-api_1.0.0-4.dsc'
+  SUDO_GID=109
+  SUDO_UID=104
+  SUDO_USER=jenkins
+  TERM=unknown
+  TZ=/usr/share/zoneinfo/Etc/GMT-14
+  UID=0
+  USER=root
+  _='I: set'
+  http_proxy=http://192.168.101.4:3128
 I: uname -a
-  Linux codethink04-arm64 6.1.0-31-cloud-arm64 #1 SMP Debian 6.1.128-1 (2025-02-07) aarch64 GNU/Linux
+  Linux i-capture-the-hostname 6.1.0-31-cloud-arm64 #1 SMP Debian 6.1.128-1 (2025-02-07) aarch64 GNU/Linux
 I: ls -l /bin
-  lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin
-I: user script /srv/workspace/pbuilder/3263685/tmp/hooks/D02_print_environment finished
+  lrwxrwxrwx 1 root root 7 Nov 22  2024 /bin -> usr/bin
+I: user script /srv/workspace/pbuilder/4109899/tmp/hooks/D02_print_environment finished
  -> Attempting to satisfy build-dependencies
  -> Creating pbuilder-satisfydepends-dummy package
 Package: pbuilder-satisfydepends-dummy
@@ -279,7 +311,7 @@
 Get: 123 http://deb.debian.org/debian unstable/main arm64 protoc-gen-go-grpc arm64 1.64.0-6+b1 [1192 kB]
 Get: 124 http://deb.debian.org/debian unstable/main arm64 golang-github-gin-contrib-sse-dev all 0.1.0-2 [6872 B]
 Get: 125 http://deb.debian.org/debian unstable/main arm64 golang-github-gin-gonic-gin-dev all 1.8.1-2 [107 kB]
-Fetched 142 MB in 2s (90.6 MB/s)
+Fetched 142 MB in 1s (273 MB/s)
 Preconfiguring packages ...
 Selecting previously unselected package golang-golang-x-sys-dev.
 (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 19897 files and directories currently installed.)
@@ -794,7 +826,11 @@
 Building tag database...
  -> Finished parsing the build-deps
 I: Building the package
-I: Running cd /build/reproducible-path/golang-github-henrybear327-go-proton-api-1.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S  > ../golang-github-henrybear327-go-proton-api_1.0.0-4_source.changes
+I: user script /srv/workspace/pbuilder/4109899/tmp/hooks/A99_set_merged_usr starting
+Not re-configuring usrmerge for unstable
+I: user script /srv/workspace/pbuilder/4109899/tmp/hooks/A99_set_merged_usr finished
+hostname: Name or service not known
+I: Running cd /build/reproducible-path/golang-github-henrybear327-go-proton-api-1.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S  > ../golang-github-henrybear327-go-proton-api_1.0.0-4_source.changes
 dpkg-buildpackage: info: source package golang-github-henrybear327-go-proton-api
 dpkg-buildpackage: info: source version 1.0.0-4
 dpkg-buildpackage: info: source distribution unstable
@@ -830,46 +866,46 @@
 make[1]: Leaving directory '/build/reproducible-path/golang-github-henrybear327-go-proton-api-1.0.0'
    dh_auto_build -O--builddirectory=_build -O--buildsystem=golang
 	cd _build && go install -trimpath -v -p 12 github.com/henrybear327/go-proton-api github.com/henrybear327/go-proton-api/server github.com/henrybear327/go-proton-api/server/backend github.com/henrybear327/go-proton-api/server/proto
-internal/coverage/rtcov
+internal/byteorder
 internal/godebugs
-internal/goexperiment
-internal/unsafeheader
+internal/coverage/rtcov
 internal/goarch
-math/bits
-internal/goos
-unicode
-unicode/utf8
-internal/profilerecord
-internal/byteorder
+internal/unsafeheader
+internal/cpu
 sync/atomic
 internal/abi
 internal/asan
-internal/runtime/syscall
-internal/cpu
-internal/msan
+internal/profilerecord
 internal/runtime/math
+internal/msan
+internal/goexperiment
+internal/goos
+internal/runtime/syscall
+math/bits
+internal/chacha8rand
+unicode
+unicode/utf8
 internal/itoa
 crypto/internal/fips140/alias
-cmp
-internal/chacha8rand
 crypto/internal/fips140deps/byteorder
-math
-crypto/internal/fips140/subtle
+cmp
 crypto/internal/boring/sig
 container/list
+crypto/internal/fips140/subtle
 unicode/utf16
 vendor/golang.org/x/crypto/cryptobyte/asn1
 vendor/golang.org/x/crypto/internal/alias
 internal/nettrace
 encoding
 log/internal
+math
 github.com/ProtonMail/go-crypto/internal/byteutil
-golang.org/x/crypto/cryptobyte/asn1
-image/color
 internal/bytealg
 internal/runtime/atomic
 internal/runtime/sys
 crypto/internal/fips140deps/cpu
+golang.org/x/crypto/cryptobyte/asn1
+image/color
 golang.org/x/text/encoding/internal/identifier
 golang.org/x/text/internal/utf8internal
 github.com/ProtonMail/gopenpgp/v2/constants
@@ -879,9 +915,9 @@
 golang.org/x/exp/constraints
 github.com/gin-gonic/gin/internal/bytesconv
 github.com/go-playground/locales/currency
-golang.org/x/exp/slices
 github.com/pelletier/go-toml/v2/internal/characters
 google.golang.org/protobuf/internal/flags
+golang.org/x/exp/slices
 golang.org/x/exp/maps
 google.golang.org/grpc/serviceconfig
 google.golang.org/protobuf/internal/set
@@ -892,155 +928,150 @@
 internal/sync
 runtime
 internal/reflectlite
-sync
 iter
-crypto/subtle
 weak
-slices
+crypto/subtle
+sync
 maps
+slices
 github.com/bradenaw/juniper/xslices
-internal/bisect
+errors
+sort
 internal/testlog
 internal/singleflight
+internal/bisect
 unique
 google.golang.org/protobuf/internal/pragma
-errors
-sort
 runtime/cgo
 io
-internal/godebug
 internal/oserror
 strconv
 path
 math/rand/v2
 vendor/golang.org/x/net/dns/dnsmessage
-bytes
-strings
 golang.org/x/crypto/cast5
-github.com/bradenaw/juniper/internal/heap
-reflect
-crypto/internal/fips140deps/godebug
 syscall
-math/rand
-crypto/internal/randutil
+github.com/bradenaw/juniper/internal/heap
+bytes
+internal/godebug
 hash
-net/netip
-golang.org/x/text/internal/tag
+strings
 github.com/bradenaw/juniper/xsort
+reflect
+golang.org/x/text/internal/tag
+crypto/internal/randutil
+github.com/emersion/go-textwrapper
 crypto
+net/netip
 hash/crc32
 hash/adler32
-golang.org/x/text/transform
-vendor/golang.org/x/text/transform
 github.com/bradenaw/juniper/container/xheap
-github.com/emersion/go-textwrapper
+internal/saferio
 github.com/cloudflare/circl/sign
+hash/fnv
+google.golang.org/grpc/internal/buffer
+golang.org/x/text/transform
+vendor/golang.org/x/text/transform
+crypto/internal/fips140deps/godebug
+math/rand
+golang.org/x/text/encoding
+golang.org/x/text/runes
 bufio
 crypto/internal/fips140
 crypto/internal/impl
 net/http/internal/ascii
 regexp/syntax
-internal/saferio
 html
-hash/fnv
-net/http/internal/testcert
-crypto/internal/fips140/sha256
 crypto/internal/fips140/sha3
+crypto/internal/fips140/sha256
 crypto/internal/fips140/sha512
 crypto/tls/internal/fips140tls
-crypto/sha3
-google.golang.org/grpc/internal/grpcrand
-golang.org/x/text/encoding
-golang.org/x/text/runes
-google.golang.org/grpc/internal/buffer
+golang.org/x/text/encoding/internal
+net/http/internal/testcert
 compress/bzip2
 image
-crypto/internal/fips140hash
-golang.org/x/text/encoding/internal
-crypto/internal/fips140/hmac
+time
+internal/syscall/unix
+internal/syscall/execenv
 golang.org/x/text/encoding/charmap
+crypto/sha3
 golang.org/x/text/encoding/japanese
-golang.org/x/text/encoding/simplifiedchinese
+crypto/internal/fips140/hmac
 golang.org/x/text/encoding/korean
-crypto/internal/fips140/check
+crypto/internal/fips140hash
+golang.org/x/text/encoding/simplifiedchinese
 golang.org/x/text/encoding/traditionalchinese
+crypto/internal/fips140/check
 crypto/internal/fips140/aes
 crypto/internal/fips140/nistec/fiat
 crypto/internal/fips140/edwards25519/field
-time
 crypto/internal/fips140/bigmod
-internal/syscall/unix
-internal/syscall/execenv
-crypto/internal/fips140/edwards25519
 crypto/internal/fips140/hkdf
+crypto/internal/fips140/edwards25519
 crypto/internal/fips140/tls12
 crypto/internal/fips140/tls13
 image/internal/imageutil
-image/jpeg
 golang.org/x/text/encoding/unicode
+google.golang.org/grpc/internal/grpcrand
 regexp
-golang.org/x/text/encoding/ianaindex
-crypto/internal/fips140/nistec
+image/jpeg
 context
 io/fs
 internal/poll
 github.com/emersion/go-vcard
 github.com/go-playground/locales
 google.golang.org/grpc/backoff
+golang.org/x/text/encoding/ianaindex
 google.golang.org/grpc/keepalive
 internal/filepathlite
 embed
+crypto/internal/fips140/nistec
 github.com/bradenaw/juniper/stream
-google.golang.org/grpc/internal/backoff
 google.golang.org/grpc/internal/grpcsync
+google.golang.org/grpc/internal/backoff
 google.golang.org/protobuf/internal/editiondefaults
 internal/fmtsort
 encoding/binary
 os
-encoding/base64
 vendor/golang.org/x/crypto/internal/poly1305
+encoding/base64
+golang.org/x/crypto/blake2b
 github.com/cloudflare/circl/internal/sha3
 golang.org/x/sys/unix
-golang.org/x/crypto/blake2b
 encoding/pem
 golang.org/x/crypto/argon2
 crypto/internal/sysrand
-fmt
-golang.org/x/sys/cpu
-path/filepath
 io/ioutil
-net
+path/filepath
+fmt
 google.golang.org/protobuf/internal/detrand
 google.golang.org/grpc/internal/envconfig
+golang.org/x/sys/cpu
+net
 crypto/internal/entropy
 crypto/internal/fips140/drbg
 golang.org/x/crypto/sha3
-crypto/internal/fips140/aes/gcm
 crypto/internal/fips140only
 crypto/internal/fips140/ecdh
+crypto/internal/fips140/aes/gcm
 crypto/internal/fips140/ecdsa
+crypto/internal/fips140/rsa
 crypto/internal/fips140/ed25519
 crypto/internal/fips140/mlkem
-crypto/internal/fips140/rsa
 crypto/md5
 crypto/rc4
 crypto/cipher
-encoding/hex
-math/big
 net/url
+encoding/json
 compress/flate
 text/tabwriter
-log
-encoding/json
-mime
+math/big
 mime/quotedprintable
+mime
+log
+encoding/hex
 github.com/ProtonMail/go-crypto/openpgp/errors
 github.com/pkg/errors
-golang.org/x/text/internal/language
-vendor/golang.org/x/text/unicode/bidi
-vendor/golang.org/x/text/unicode/norm
-github.com/ProtonMail/go-crypto/openpgp/armor
-vendor/golang.org/x/net/http2/hpack
 crypto/internal/boring
 crypto/des
 vendor/golang.org/x/crypto/chacha20
@@ -1049,30 +1080,43 @@
 crypto/aes
 crypto/ecdh
 crypto/sha512
-vendor/golang.org/x/crypto/chacha20poly1305
 crypto/sha1
-compress/gzip
-github.com/ProtonMail/go-crypto/openpgp/aes/keywrap
+github.com/ProtonMail/go-crypto/openpgp/armor
 github.com/ProtonMail/go-crypto/eax
+github.com/ProtonMail/go-crypto/openpgp/aes/keywrap
 github.com/ProtonMail/go-crypto/ocb
+compress/gzip
 compress/zlib
 golang.org/x/crypto/hkdf
-golang.org/x/crypto/curve25519
-vendor/golang.org/x/text/secure/bidirule
+vendor/golang.org/x/crypto/chacha20poly1305
+golang.org/x/text/internal/language
+vendor/golang.org/x/text/unicode/bidi
 github.com/ProtonMail/go-crypto/openpgp/internal/algorithm
+vendor/golang.org/x/text/unicode/norm
+golang.org/x/crypto/curve25519
 runtime/pprof
+vendor/golang.org/x/net/http2/hpack
 net/http/internal
 github.com/ProtonMail/gopenpgp/v2/internal
-runtime/debug
+github.com/ProtonMail/go-crypto/openpgp/s2k
 github.com/ProtonMail/gopenpgp/v2/armor
-golang.org/x/text/internal/language/compact
+runtime/debug
 golang.org/x/net/html
 golang.org/x/sync/errgroup
-github.com/ProtonMail/go-crypto/openpgp/s2k
 encoding/xml
+database/sql/driver
 github.com/bradenaw/juniper/parallel
+vendor/golang.org/x/text/secure/bidirule
+flag
+github.com/pelletier/go-toml/v2/internal/danger
+encoding/gob
+golang.org/x/text/internal/language/compact
+go/token
+github.com/pelletier/go-toml/v2/unstable
+github.com/sirupsen/logrus
+vendor/golang.org/x/net/idna
+github.com/Masterminds/semver
 golang.org/x/text/language
-database/sql/driver
 crypto/elliptic
 crypto/internal/boring/bbig
 encoding/asn1
@@ -1081,112 +1125,104 @@
 crypto/ed25519
 crypto/internal/hpke
 crypto/rsa
-github.com/sirupsen/logrus
-github.com/ProtonMail/go-crypto/openpgp/internal/encoding
-github.com/cloudflare/circl/math
+github.com/ProtonMail/gluon/logging
 github.com/ProtonMail/go-crypto/bitcurves
 github.com/ProtonMail/go-crypto/brainpool
+github.com/ProtonMail/go-crypto/openpgp/internal/encoding
+github.com/ProtonMail/gluon/async
+github.com/cloudflare/circl/math
 github.com/ProtonMail/go-crypto/openpgp/elgamal
 github.com/ProtonMail/bcrypt
-github.com/cronokirby/saferith
 golang.org/x/text/encoding/htmlindex
-vendor/golang.org/x/net/idna
-github.com/Masterminds/semver
-flag
+github.com/cronokirby/saferith
+github.com/andybalholm/cascadia
 github.com/gin-gonic/gin/internal/json
 github.com/go-playground/universal-translator
 github.com/leodido/go-urn
-github.com/ProtonMail/gluon/logging
-github.com/ProtonMail/gluon/async
+github.com/pelletier/go-toml/v2/internal/tracker
+text/template/parse
+google.golang.org/protobuf/internal/errors
 vendor/golang.org/x/crypto/cryptobyte
 crypto/x509/pkix
 golang.org/x/crypto/cryptobyte
-github.com/pelletier/go-toml/v2/internal/danger
-encoding/gob
-github.com/pelletier/go-toml/v2/unstable
-github.com/andybalholm/cascadia
-go/token
-text/template/parse
-google.golang.org/protobuf/internal/errors
+github.com/pelletier/go-toml/v2
+google.golang.org/protobuf/encoding/protowire
 gopkg.in/yaml.v2
 github.com/mattn/go-isatty
 golang.org/x/text/unicode/bidi
+google.golang.org/protobuf/reflect/protoreflect
 golang.org/x/text/unicode/norm
-crypto/ecdsa
-github.com/pelletier/go-toml/v2/internal/tracker
-google.golang.org/protobuf/encoding/protowire
 github.com/cloudflare/circl/internal/conv
+crypto/ecdsa
 golang.org/x/net/http2/hpack
-google.golang.org/protobuf/reflect/protoreflect
-github.com/pelletier/go-toml/v2
 github.com/cloudflare/circl/math/fp25519
 github.com/cloudflare/circl/math/fp448
 github.com/cloudflare/circl/math/mlsbset
-github.com/cloudflare/circl/dh/x25519
+golang.org/x/text/secure/bidirule
+text/template
 github.com/cloudflare/circl/dh/x448
-github.com/cloudflare/circl/sign/ed25519
 github.com/cloudflare/circl/ecc/goldilocks
-text/template
-golang.org/x/text/secure/bidirule
-github.com/ProtonMail/go-crypto/openpgp/x25519
 golang.org/x/net/internal/timeseries
 google.golang.org/grpc/internal/grpclog
-google.golang.org/grpc/grpclog
-github.com/ProtonMail/go-crypto/openpgp/ed25519
-github.com/ProtonMail/go-crypto/openpgp/x448
-google.golang.org/grpc/attributes
-google.golang.org/protobuf/internal/version
-google.golang.org/grpc/internal/idle
-github.com/cloudflare/circl/sign/ed448
-golang.org/x/net/idna
+github.com/cloudflare/circl/dh/x25519
+github.com/cloudflare/circl/sign/ed25519
 google.golang.org/protobuf/internal/encoding/messageset
 google.golang.org/protobuf/internal/genid
+github.com/ProtonMail/go-crypto/openpgp/x448
+github.com/ProtonMail/go-crypto/openpgp/x25519
 google.golang.org/protobuf/internal/order
 google.golang.org/protobuf/internal/strs
+google.golang.org/protobuf/reflect/protoregistry
 google.golang.org/protobuf/runtime/protoiface
-github.com/ProtonMail/go-crypto/openpgp/internal/ecc
-github.com/ProtonMail/go-crypto/openpgp/ed448
-google.golang.org/grpc/connectivity
+google.golang.org/grpc/grpclog
+google.golang.org/grpc/attributes
+golang.org/x/net/idna
 google.golang.org/protobuf/internal/descfmt
-google.golang.org/protobuf/reflect/protoregistry
 google.golang.org/protobuf/internal/descopts
+github.com/ProtonMail/go-crypto/openpgp/ed25519
 google.golang.org/protobuf/internal/encoding/text
 google.golang.org/protobuf/internal/protolazy
+github.com/cloudflare/circl/sign/ed448
+google.golang.org/protobuf/internal/version
+google.golang.org/grpc/internal/idle
 google.golang.org/protobuf/internal/encoding/json
+google.golang.org/grpc/connectivity
+google.golang.org/protobuf/proto
+github.com/ProtonMail/go-crypto/openpgp/internal/ecc
+github.com/ProtonMail/go-crypto/openpgp/ed448
+google.golang.org/protobuf/internal/encoding/defval
+html/template
 github.com/ProtonMail/go-crypto/openpgp/ecdh
 github.com/ProtonMail/go-crypto/openpgp/ecdsa
 github.com/ProtonMail/go-crypto/openpgp/eddsa
-google.golang.org/protobuf/proto
-google.golang.org/protobuf/internal/encoding/defval
 github.com/ProtonMail/go-crypto/openpgp/packet
-html/template
 google.golang.org/protobuf/internal/filedesc
 google.golang.org/protobuf/encoding/prototext
-github.com/ProtonMail/go-crypto/openpgp
 google.golang.org/protobuf/internal/encoding/tag
 google.golang.org/protobuf/encoding/protojson
 google.golang.org/protobuf/internal/impl
+github.com/ProtonMail/go-crypto/openpgp
+vendor/golang.org/x/net/http/httpproxy
 net/textproto
+google.golang.org/grpc/internal
+google.golang.org/grpc/internal/resolver/dns/internal
 github.com/google/uuid
-github.com/go-playground/validator/v10
 crypto/x509
-google.golang.org/grpc/internal
 google.golang.org/grpc/internal/syscall
-google.golang.org/grpc/internal/resolver/dns/internal
-vendor/golang.org/x/net/http/httpproxy
+github.com/go-playground/validator/v10
 google.golang.org/grpc/metadata
 google.golang.org/grpc/codes
-google.golang.org/grpc/internal/grpcutil
-google.golang.org/grpc/internal/balancerload
-google.golang.org/grpc/stats
-google.golang.org/grpc/tap
-github.com/ProtonMail/gluon/rfc822
 github.com/ProtonMail/go-crypto/openpgp/clearsign
+vendor/golang.org/x/net/http/httpguts
+github.com/emersion/go-message/textproto
 mime/multipart
+github.com/ProtonMail/gluon/rfc822
 net/mail
-github.com/emersion/go-message/textproto
 golang.org/x/net/http/httpguts
-vendor/golang.org/x/net/http/httpguts
+google.golang.org/grpc/internal/balancerload
+google.golang.org/grpc/internal/grpcutil
+google.golang.org/grpc/stats
+google.golang.org/grpc/tap
 google.golang.org/grpc/encoding
 github.com/ProtonMail/go-srp
 github.com/emersion/go-message
@@ -1197,27 +1233,27 @@
 google.golang.org/protobuf/types/known/durationpb
 google.golang.org/protobuf/types/known/timestamppb
 google.golang.org/protobuf/types/known/anypb
-github.com/golang/protobuf/ptypes/timestamp
 google.golang.org/grpc/encoding/proto
 google.golang.org/grpc/internal/pretty
+github.com/golang/protobuf/ptypes/timestamp
 github.com/golang/protobuf/ptypes/duration
 google.golang.org/genproto/googleapis/rpc/status
 google.golang.org/grpc/binarylog/grpc_binarylog_v1
 google.golang.org/grpc/internal/status
-google.golang.org/grpc/status
-google.golang.org/grpc/internal/binarylog
 net/http/httptrace
 google.golang.org/grpc/internal/credentials
-google.golang.org/grpc/credentials
 net/http
-google.golang.org/grpc/internal/channelz
+google.golang.org/grpc/status
+google.golang.org/grpc/credentials
+google.golang.org/grpc/internal/binarylog
 google.golang.org/grpc/resolver
-google.golang.org/grpc/credentials/insecure
 google.golang.org/grpc/peer
+google.golang.org/grpc/credentials/insecure
+google.golang.org/grpc/internal/channelz
 google.golang.org/grpc/internal/metadata
+google.golang.org/grpc/internal/resolver/passthrough
 google.golang.org/grpc/internal/transport/networktype
 google.golang.org/grpc/balancer/grpclb/state
-google.golang.org/grpc/internal/resolver/passthrough
 google.golang.org/grpc/internal/resolver/unix
 google.golang.org/grpc/internal/resolver/dns
 google.golang.org/grpc/resolver/dns
@@ -1225,20 +1261,20 @@
 google.golang.org/grpc/balancer
 google.golang.org/grpc/balancer/base
 google.golang.org/grpc/internal/serviceconfig
+google.golang.org/grpc/internal/resolver
 google.golang.org/grpc/balancer/roundrobin
 google.golang.org/grpc/internal/balancer/gracefulswitch
-google.golang.org/grpc/internal/resolver
 github.com/ProtonMail/go-mime
+net/http/cookiejar
 github.com/gin-contrib/sse
+net/rpc
 net/http/httputil
 net/http/httptest
 golang.org/x/net/trace
-net/http/cookiejar
 github.com/PuerkitoBio/goquery
-net/rpc
 golang.org/x/net/http2
-github.com/ProtonMail/gopenpgp/v2/crypto
 golang.org/x/net/publicsuffix
+github.com/ProtonMail/gopenpgp/v2/crypto
 github.com/go-resty/resty
 github.com/ugorji/go/codec
 github.com/ProtonMail/gopenpgp/v2/helper
@@ -1247,9 +1283,9 @@
 google.golang.org/grpc/internal/transport
 google.golang.org/grpc
 github.com/henrybear327/go-proton-api/server/backend
+github.com/henrybear327/go-proton-api/server/proto
 github.com/gin-gonic/gin/binding
 github.com/gin-gonic/gin/render
-github.com/henrybear327/go-proton-api/server/proto
 github.com/gin-gonic/gin
 github.com/henrybear327/go-proton-api/server
    dh_auto_test -O--builddirectory=_build -O--buildsystem=golang
@@ -1259,13 +1295,13 @@
 === RUN   TestGroup
 --- PASS: TestGroup (0.01s)
 === RUN   TestKeyring_Unlock
-time="2025-03-05T03:43:14Z" level=warning msg="Cannot unlock key" KeyID=1 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
-time="2025-03-05T03:43:14Z" level=warning msg="Cannot unlock key" KeyID=2 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
-time="2025-03-05T03:43:14Z" level=warning msg="Cannot unlock key" KeyID=3 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
-time="2025-03-05T03:43:14Z" level=warning msg="Cannot unlock key" KeyID=1 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
-time="2025-03-05T03:43:14Z" level=warning msg="Cannot unlock key" KeyID=2 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
-time="2025-03-05T03:43:14Z" level=warning msg="Cannot unlock key" KeyID=3 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
---- PASS: TestKeyring_Unlock (3.24s)
+time="2026-04-07T10:11:44Z" level=warning msg="Cannot unlock key" KeyID=1 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
+time="2026-04-07T10:11:44Z" level=warning msg="Cannot unlock key" KeyID=2 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
+time="2026-04-07T10:11:44Z" level=warning msg="Cannot unlock key" KeyID=3 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
+time="2026-04-07T10:11:44Z" level=warning msg="Cannot unlock key" KeyID=1 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
+time="2026-04-07T10:11:44Z" level=warning msg="Cannot unlock key" KeyID=2 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
+time="2026-04-07T10:11:44Z" level=warning msg="Cannot unlock key" KeyID=3 error="gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure"
+--- PASS: TestKeyring_Unlock (2.13s)
 === RUN   TestEncryptMessage_Simple
 --- PASS: TestEncryptMessage_Simple (0.00s)
 === RUN   TestEncryptMessage_MultipleTextParts
@@ -1288,7 +1324,7 @@
 === RUN   TestSendDraftReq_AddMIMEPackage/PGP_MIME_with_rich_text_(error)
 === RUN   TestSendDraftReq_AddMIMEPackage/PGP_MIME_with_missing_public_key_(error)
 === RUN   TestSendDraftReq_AddMIMEPackage/PGP_MIME_with_no_signature_(error)
---- PASS: TestSendDraftReq_AddMIMEPackage (1.84s)
+--- PASS: TestSendDraftReq_AddMIMEPackage (1.12s)
     --- PASS: TestSendDraftReq_AddMIMEPackage/Clear_MIME_with_detached_signature (0.01s)
     --- PASS: TestSendDraftReq_AddMIMEPackage/Clear_MIME_with_no_signature_(error) (0.01s)
     --- PASS: TestSendDraftReq_AddMIMEPackage/Clear_MIME_with_plain_text_(error) (0.00s)
@@ -1316,7 +1352,7 @@
 === RUN   TestSendDraftReq_AddPackage/encrypted_html_text_with_signature_(error)
 === RUN   TestSendDraftReq_AddPackage/encrypted_mixed_text_with_signature_(error)
 === RUN   TestSendDraftReq_AddPackage/encrypted_for_outside_(error)
---- PASS: TestSendDraftReq_AddPackage (0.74s)
+--- PASS: TestSendDraftReq_AddPackage (0.64s)
     --- PASS: TestSendDraftReq_AddPackage/internal_plain_text_with_detached_signature (0.01s)
     --- PASS: TestSendDraftReq_AddPackage/internal_rich_text_with_detached_signature (0.01s)
     --- PASS: TestSendDraftReq_AddPackage/internal_rich_text_with_bad_package_content_type_(error) (0.00s)
@@ -1350,228 +1386,229 @@
 === RUN   TestPool_ProcessAll
 --- PASS: TestPool_ProcessAll (0.00s)
 === RUN   TestAddress_Types
---- PASS: TestAddress_Types (5.82s)
+--- PASS: TestAddress_Types (8.52s)
 === RUN   TestAttachment_429Response
-time="2025-03-05T03:43:25Z" level=warning msg="Too many requests, retrying after delay" after=12 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:40807/mail/v4/attachments/someID"
-time="2025-03-05T03:43:37Z" level=warning msg="Too many requests, retrying after delay" after=10 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:40807/mail/v4/attachments/someID"
-time="2025-03-05T03:43:47Z" level=warning msg="Too many requests, retrying after delay" after=12 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:40807/mail/v4/attachments/someID"
---- PASS: TestAttachment_429Response (36.74s)
+time="2026-04-07T10:11:58Z" level=warning msg="Too many requests, retrying after delay" after=14 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:37345/mail/v4/attachments/someID"
+time="2026-04-07T10:12:12Z" level=warning msg="Too many requests, retrying after delay" after=19 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:37345/mail/v4/attachments/someID"
+time="2026-04-07T10:12:31Z" level=warning msg="Too many requests, retrying after delay" after=10 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:37345/mail/v4/attachments/someID"
+--- PASS: TestAttachment_429Response (46.32s)
 === RUN   TestAttachment_ContextCancelled
-2025/03/05 03:44:02.892127 WARN RESTY Get "https://127.0.0.1:38217/mail/v4/attachments/someID": context canceled, Attempt 1
-2025/03/05 03:44:02.892162 ERROR RESTY Get "https://127.0.0.1:38217/mail/v4/attachments/someID": context canceled
---- PASS: TestAttachment_ContextCancelled (3.33s)
+2026/04/07 10:12:44.523520 WARN RESTY Get "https://127.0.0.1:40493/mail/v4/attachments/someID": context canceled, Attempt 1
+2026/04/07 10:12:44.523564 ERROR RESTY Get "https://127.0.0.1:40493/mail/v4/attachments/someID": context canceled
+--- PASS: TestAttachment_ContextCancelled (2.92s)
 === RUN   TestAuth
-2025/03/05 03:44:11.418543 WARN RESTY 401 DELETE https://127.0.0.1:42701/auth/v4: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:11.418606 ERROR RESTY 401 DELETE https://127.0.0.1:42701/auth/v4: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:11.418828 WARN RESTY 422 POST https://127.0.0.1:42701/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
-2025/03/05 03:44:11.418834 ERROR RESTY 422 POST https://127.0.0.1:42701/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
---- PASS: TestAuth (8.53s)
+2026/04/07 10:12:48.252718 WARN RESTY 401 DELETE https://127.0.0.1:43089/auth/v4: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:12:48.252749 ERROR RESTY 401 DELETE https://127.0.0.1:43089/auth/v4: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:12:48.253295 WARN RESTY 422 POST https://127.0.0.1:43089/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
+2026/04/07 10:12:48.253314 ERROR RESTY 422 POST https://127.0.0.1:43089/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
+--- PASS: TestAuth (3.73s)
 === RUN   TestAuth_Refresh
-2025/03/05 03:44:20.794219 WARN RESTY 401 GET https://127.0.0.1:46411/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:20.794249 ERROR RESTY 401 GET https://127.0.0.1:46411/core/v4/users: 401 Unauthorized (Code=0, Status=401)
---- PASS: TestAuth_Refresh (9.38s)
+2026/04/07 10:12:55.070373 WARN RESTY 401 GET https://127.0.0.1:39083/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:12:55.070411 ERROR RESTY 401 GET https://127.0.0.1:39083/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+--- PASS: TestAuth_Refresh (6.82s)
 === RUN   TestAuth_Refresh_Multi
-2025/03/05 03:44:31.550614 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.550640 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:31.550702 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.550706 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:31.553904 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.553924 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:31.554125 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.554131 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:31.554215 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.554219 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:31.554292 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.554296 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:31.554365 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.554368 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:31.554446 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.554449 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:31.554520 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.554524 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:31.562276 WARN RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:31.562312 ERROR RESTY 401 GET https://127.0.0.1:37795/core/v4/users: 401 Unauthorized (Code=0, Status=401)
---- PASS: TestAuth_Refresh_Multi (11.56s)
+2026/04/07 10:13:01.703168 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.703206 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.703259 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.703279 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.703446 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.703458 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.703503 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.703514 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.703651 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.703661 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.703774 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.703794 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.704021 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.704031 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.704218 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.704226 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.704414 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.704428 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.704416 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.704443 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.704605 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.704616 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:01.704636 WARN RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:01.704645 ERROR RESTY 401 GET https://127.0.0.1:39011/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+--- PASS: TestAuth_Refresh_Multi (6.95s)
 === RUN   TestAuth_Refresh_Deauth
-2025/03/05 03:44:38.759023 WARN RESTY 401 GET https://127.0.0.1:35975/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:44:38.759048 ERROR RESTY 401 GET https://127.0.0.1:35975/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:44:38.759230 WARN RESTY 422 POST https://127.0.0.1:35975/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
-2025/03/05 03:44:38.759235 ERROR RESTY 422 POST https://127.0.0.1:35975/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
---- PASS: TestAuth_Refresh_Deauth (6.71s)
+2026/04/07 10:13:04.551403 WARN RESTY 401 GET https://127.0.0.1:37471/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:04.551436 ERROR RESTY 401 GET https://127.0.0.1:37471/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:04.551620 WARN RESTY 422 POST https://127.0.0.1:37471/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
+2026/04/07 10:13:04.551625 ERROR RESTY 422 POST https://127.0.0.1:37471/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
+--- PASS: TestAuth_Refresh_Deauth (2.83s)
 === RUN   TestEventStreamer
---- PASS: TestEventStreamer (8.98s)
+--- PASS: TestEventStreamer (4.61s)
 === RUN   TestMaxEventMerge
---- PASS: TestMaxEventMerge (4.30s)
+--- PASS: TestMaxEventMerge (3.24s)
 === RUN   Test_HMAC
 --- PASS: Test_HMAC (0.00s)
 === RUN   TestReportBug
 --- PASS: TestReportBug (0.01s)
 === RUN   TestStatus
-2025/03/05 03:44:52.353786 WARN RESTY Get "https://127.0.0.1:45265/tests/ping": dial failed (not allowed), Attempt 1
-2025/03/05 03:44:52.455055 WARN RESTY Get "https://127.0.0.1:45265/tests/ping": dial failed (not allowed), Attempt 2
-2025/03/05 03:44:52.618041 WARN RESTY Get "https://127.0.0.1:45265/tests/ping": dial failed (not allowed), Attempt 3
-2025/03/05 03:44:52.879519 WARN RESTY Get "https://127.0.0.1:45265/tests/ping": dial failed (not allowed), Attempt 4
-2025/03/05 03:44:52.879551 ERROR RESTY Get "https://127.0.0.1:45265/tests/ping": dial failed (not allowed)
---- PASS: TestStatus (0.54s)
+2026/04/07 10:13:12.733149 WARN RESTY Get "https://127.0.0.1:37951/tests/ping": dial failed (not allowed), Attempt 1
+2026/04/07 10:13:12.834098 WARN RESTY Get "https://127.0.0.1:37951/tests/ping": dial failed (not allowed), Attempt 2
+2026/04/07 10:13:13.032412 WARN RESTY Get "https://127.0.0.1:37951/tests/ping": dial failed (not allowed), Attempt 3
+2026/04/07 10:13:13.378015 WARN RESTY Get "https://127.0.0.1:37951/tests/ping": dial failed (not allowed), Attempt 4
+2026/04/07 10:13:13.378062 ERROR RESTY Get "https://127.0.0.1:37951/tests/ping": dial failed (not allowed)
+--- PASS: TestStatus (0.68s)
 === RUN   TestStatus_NoDial
-2025/03/05 03:44:52.891462 WARN RESTY Get "https://127.0.0.1:44591/tests/ping": dial failed (not allowed), Attempt 1
-2025/03/05 03:44:52.998044 WARN RESTY Get "https://127.0.0.1:44591/tests/ping": dial failed (not allowed), Attempt 2
-2025/03/05 03:44:53.124851 WARN RESTY Get "https://127.0.0.1:44591/tests/ping": dial failed (not allowed), Attempt 3
-2025/03/05 03:44:53.508958 WARN RESTY Get "https://127.0.0.1:44591/tests/ping": dial failed (not allowed), Attempt 4
-2025/03/05 03:44:53.508990 ERROR RESTY Get "https://127.0.0.1:44591/tests/ping": dial failed (not allowed)
---- PASS: TestStatus_NoDial (0.62s)
+2026/04/07 10:13:13.395178 WARN RESTY Get "https://127.0.0.1:40445/tests/ping": dial failed (not allowed), Attempt 1
+2026/04/07 10:13:13.497960 WARN RESTY Get "https://127.0.0.1:40445/tests/ping": dial failed (not allowed), Attempt 2
+2026/04/07 10:13:13.617826 WARN RESTY Get "https://127.0.0.1:40445/tests/ping": dial failed (not allowed), Attempt 3
+2026/04/07 10:13:13.869661 WARN RESTY Get "https://127.0.0.1:40445/tests/ping": dial failed (not allowed), Attempt 4
+2026/04/07 10:13:13.869702 ERROR RESTY Get "https://127.0.0.1:40445/tests/ping": dial failed (not allowed)
+--- PASS: TestStatus_NoDial (0.48s)
 === RUN   TestStatus_NoRead
-2025/03/05 03:44:53.519214 WARN RESTY Get "https://127.0.0.1:36407/tests/ping": read failed (not allowed), Attempt 1
-2025/03/05 03:44:53.635507 WARN RESTY Get "https://127.0.0.1:36407/tests/ping": read failed (not allowed), Attempt 2
-2025/03/05 03:44:53.778042 WARN RESTY Get "https://127.0.0.1:36407/tests/ping": read failed (not allowed), Attempt 3
-2025/03/05 03:44:54.015623 WARN RESTY Get "https://127.0.0.1:36407/tests/ping": read failed (not allowed), Attempt 4
-2025/03/05 03:44:54.015646 ERROR RESTY Get "https://127.0.0.1:36407/tests/ping": read failed (not allowed)
-2025/03/05 03:44:54 http: TLS handshake error from 127.0.0.1:57298: read tcp 127.0.0.1:36407->127.0.0.1:57298: use of closed network connection
---- PASS: TestStatus_NoRead (0.51s)
+2026/04/07 10:13:13.882993 WARN RESTY Get "https://127.0.0.1:42229/tests/ping": read failed (not allowed), Attempt 1
+2026/04/07 10:13:13.998848 WARN RESTY Get "https://127.0.0.1:42229/tests/ping": read failed (not allowed), Attempt 2
+2026/04/07 10:13:14.181274 WARN RESTY Get "https://127.0.0.1:42229/tests/ping": read failed (not allowed), Attempt 3
+2026/04/07 10:13:14.447521 WARN RESTY Get "https://127.0.0.1:42229/tests/ping": read failed (not allowed), Attempt 4
+2026/04/07 10:13:14.447562 ERROR RESTY Get "https://127.0.0.1:42229/tests/ping": read failed (not allowed)
+--- PASS: TestStatus_NoRead (0.58s)
 === RUN   TestStatus_NoWrite
-2025/03/05 03:44:54.021574 WARN RESTY Get "https://127.0.0.1:40465/tests/ping": write failed (not allowed), Attempt 1
-2025/03/05 03:44:54.136079 WARN RESTY Get "https://127.0.0.1:40465/tests/ping": write failed (not allowed), Attempt 2
-2025/03/05 03:44:54.349059 WARN RESTY Get "https://127.0.0.1:40465/tests/ping": write failed (not allowed), Attempt 3
-2025/03/05 03:44:54.755133 WARN RESTY Get "https://127.0.0.1:40465/tests/ping": write failed (not allowed), Attempt 4
-2025/03/05 03:44:54.755153 ERROR RESTY Get "https://127.0.0.1:40465/tests/ping": write failed (not allowed)
-2025/03/05 03:44:54 http: TLS handshake error from 127.0.0.1:38044: read tcp 127.0.0.1:40465->127.0.0.1:38044: use of closed network connection
---- PASS: TestStatus_NoWrite (0.74s)
+2026/04/07 10:13:14.463795 WARN RESTY Get "https://127.0.0.1:40713/tests/ping": write failed (not allowed), Attempt 1
+2026/04/07 10:13:14.580588 WARN RESTY Get "https://127.0.0.1:40713/tests/ping": write failed (not allowed), Attempt 2
+2026/04/07 10:13:14.758576 WARN RESTY Get "https://127.0.0.1:40713/tests/ping": write failed (not allowed), Attempt 3
+2026/04/07 10:13:15.089116 WARN RESTY Get "https://127.0.0.1:40713/tests/ping": write failed (not allowed), Attempt 4
+2026/04/07 10:13:15.089159 ERROR RESTY Get "https://127.0.0.1:40713/tests/ping": write failed (not allowed)
+--- PASS: TestStatus_NoWrite (0.64s)
 === RUN   TestStatus_NoReadExistingConn
-2025/03/05 03:44:59.036227 WARN RESTY Get "https://127.0.0.1:43665/core/v4/users": read failed (not allowed), Attempt 1
-2025/03/05 03:44:59.144663 WARN RESTY Get "https://127.0.0.1:43665/core/v4/users": read failed (not allowed), Attempt 2
-2025/03/05 03:44:59.259504 WARN RESTY Get "https://127.0.0.1:43665/core/v4/users": read failed (not allowed), Attempt 3
-2025/03/05 03:44:59.540526 WARN RESTY Get "https://127.0.0.1:43665/core/v4/users": read failed (not allowed), Attempt 4
-2025/03/05 03:44:59.540932 ERROR RESTY Get "https://127.0.0.1:43665/core/v4/users": read failed (not allowed)
---- PASS: TestStatus_NoReadExistingConn (4.79s)
+2026/04/07 10:13:17.754793 WARN RESTY Get "https://127.0.0.1:45341/core/v4/users": read failed (not allowed), Attempt 1
+2026/04/07 10:13:17.870648 WARN RESTY Get "https://127.0.0.1:45341/core/v4/users": read failed (not allowed), Attempt 2
+2026/04/07 10:13:18.068004 WARN RESTY Get "https://127.0.0.1:45341/core/v4/users": read failed (not allowed), Attempt 3
+2026/04/07 10:13:18.325486 WARN RESTY Get "https://127.0.0.1:45341/core/v4/users": read failed (not allowed), Attempt 4
+2026/04/07 10:13:18.325539 ERROR RESTY Get "https://127.0.0.1:45341/core/v4/users": read failed (not allowed)
+--- PASS: TestStatus_NoReadExistingConn (3.24s)
 === RUN   TestStatus_NoWriteExistingConn
-2025/03/05 03:45:03 http: TLS handshake error from 127.0.0.1:56986: read tcp 127.0.0.1:44993->127.0.0.1:56986: use of closed network connection
---- PASS: TestStatus_NoWriteExistingConn (3.87s)
+--- PASS: TestStatus_NoWriteExistingConn (3.66s)
 === RUN   TestStatus_ContextCancel
-2025/03/05 03:45:03.414556 WARN RESTY Get "https://127.0.0.1:40577/tests/ping": context canceled, Attempt 1
-2025/03/05 03:45:03.414573 ERROR RESTY Get "https://127.0.0.1:40577/tests/ping": context canceled
+2026/04/07 10:13:21.986773 WARN RESTY Get "https://127.0.0.1:46753/tests/ping": context canceled, Attempt 1
+2026/04/07 10:13:21.986816 ERROR RESTY Get "https://127.0.0.1:46753/tests/ping": context canceled
 --- PASS: TestStatus_ContextCancel (0.00s)
 === RUN   TestStatus_ContextTimeout
-2025/03/05 03:45:03.415039 WARN RESTY Get "https://127.0.0.1:32889/tests/ping": context deadline exceeded, Attempt 1
-2025/03/05 03:45:03.415050 ERROR RESTY Get "https://127.0.0.1:32889/tests/ping": context deadline exceeded
+2026/04/07 10:13:21.987881 WARN RESTY Get "https://127.0.0.1:33263/tests/ping": context deadline exceeded, Attempt 1
+2026/04/07 10:13:21.987913 ERROR RESTY Get "https://127.0.0.1:33263/tests/ping": context deadline exceeded
 --- PASS: TestStatus_ContextTimeout (0.00s)
 === RUN   TestStatus_ServerDrop
-2025/03/05 03:45:06 http: TLS handshake error from 127.0.0.1:40906: write: connection closed
-2025/03/05 03:45:06.004839 WARN RESTY Get "https://127.0.0.1:40503/core/v4/users": read tcp 127.0.0.1:40906->127.0.0.1:40503: read: connection reset by peer, Attempt 1
-2025/03/05 03:45:06 http: TLS handshake error from 127.0.0.1:40922: write: connection closed
-2025/03/05 03:45:06.118239 WARN RESTY Get "https://127.0.0.1:40503/core/v4/users": read tcp 127.0.0.1:40922->127.0.0.1:40503: read: connection reset by peer, Attempt 2
-2025/03/05 03:45:06 http: TLS handshake error from 127.0.0.1:40924: write: connection closed
-2025/03/05 03:45:06.271149 WARN RESTY Get "https://127.0.0.1:40503/core/v4/users": read tcp 127.0.0.1:40924->127.0.0.1:40503: read: connection reset by peer, Attempt 3
-2025/03/05 03:45:06 http: TLS handshake error from 127.0.0.1:40930: write: connection closed
-2025/03/05 03:45:06.652309 WARN RESTY Get "https://127.0.0.1:40503/core/v4/users": read tcp 127.0.0.1:40930->127.0.0.1:40503: read: connection reset by peer, Attempt 4
-2025/03/05 03:45:06.652323 ERROR RESTY Get "https://127.0.0.1:40503/core/v4/users": read tcp 127.0.0.1:40930->127.0.0.1:40503: read: connection reset by peer
---- PASS: TestStatus_ServerDrop (3.26s)
+2026/04/07 10:13:23 http: TLS handshake error from 127.0.0.1:43850: write: connection closed
+2026/04/07 10:13:23.669952 WARN RESTY Get "https://127.0.0.1:35461/core/v4/users": read tcp 127.0.0.1:43850->127.0.0.1:35461: read: connection reset by peer, Attempt 1
+2026/04/07 10:13:23 http: TLS handshake error from 127.0.0.1:43856: write: connection closed
+2026/04/07 10:13:23.782043 WARN RESTY Get "https://127.0.0.1:35461/core/v4/users": read tcp 127.0.0.1:43856->127.0.0.1:35461: read: connection reset by peer, Attempt 2
+2026/04/07 10:13:23 http: TLS handshake error from 127.0.0.1:43864: write: connection closed
+2026/04/07 10:13:23.951134 WARN RESTY Get "https://127.0.0.1:35461/core/v4/users": read tcp 127.0.0.1:43864->127.0.0.1:35461: read: connection reset by peer, Attempt 3
+2026/04/07 10:13:24 http: TLS handshake error from 127.0.0.1:43874: write: connection closed
+2026/04/07 10:13:24.199312 WARN RESTY Get "https://127.0.0.1:35461/core/v4/users": read tcp 127.0.0.1:43874->127.0.0.1:35461: read: connection reset by peer, Attempt 4
+2026/04/07 10:13:24.199338 ERROR RESTY Get "https://127.0.0.1:35461/core/v4/users": read tcp 127.0.0.1:43874->127.0.0.1:35461: read: connection reset by peer
+--- PASS: TestStatus_ServerDrop (2.22s)
 === RUN   TestStatus_ServerHang
-2025/03/05 03:45:16.669959 WARN RESTY Get "http://127.0.0.1:38263/core/v4/users": net/http: timeout awaiting response headers, Attempt 1
-2025/03/05 03:45:17.774220 WARN RESTY Get "http://127.0.0.1:38263/core/v4/users": net/http: timeout awaiting response headers, Attempt 2
-2025/03/05 03:45:18.897984 WARN RESTY Get "http://127.0.0.1:38263/core/v4/users": net/http: timeout awaiting response headers, Attempt 3
-2025/03/05 03:45:20.286073 WARN RESTY Get "http://127.0.0.1:38263/core/v4/users": net/http: timeout awaiting response headers, Attempt 4
-2025/03/05 03:45:20.286106 ERROR RESTY Get "http://127.0.0.1:38263/core/v4/users": net/http: timeout awaiting response headers
---- PASS: TestStatus_ServerHang (13.62s)
+2026/04/07 10:13:28.529749 WARN RESTY Get "http://127.0.0.1:41005/core/v4/users": net/http: timeout awaiting response headers, Attempt 1
+2026/04/07 10:13:29.637933 WARN RESTY Get "http://127.0.0.1:41005/core/v4/users": net/http: timeout awaiting response headers, Attempt 2
+2026/04/07 10:13:30.841748 WARN RESTY Get "http://127.0.0.1:41005/core/v4/users": net/http: timeout awaiting response headers, Attempt 3
+2026/04/07 10:13:32.241754 WARN RESTY Get "http://127.0.0.1:41005/core/v4/users": net/http: timeout awaiting response headers, Attempt 4
+2026/04/07 10:13:32.241796 ERROR RESTY Get "http://127.0.0.1:41005/core/v4/users": net/http: timeout awaiting response headers
+--- PASS: TestStatus_ServerHang (8.03s)
 === RUN   TestConnectionReuse
 --- PASS: TestConnectionReuse (0.01s)
 === RUN   TestAuthRefresh
---- PASS: TestAuthRefresh (3.79s)
+--- PASS: TestAuthRefresh (3.19s)
 === RUN   TestHandleTooManyRequests
-2025/03/05 03:45:24.107698 WARN RESTY 429 GET https://127.0.0.1:34709/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
-time="2025-03-05T03:45:24Z" level=warning msg="Too many requests, retrying after delay" after=6 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:34709/tests/ping"
-2025/03/05 03:45:30.134848 WARN RESTY 429 GET https://127.0.0.1:34709/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
-time="2025-03-05T03:45:30Z" level=warning msg="Too many requests, retrying after delay" after=1 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:34709/tests/ping"
-2025/03/05 03:45:31.138326 WARN RESTY 429 GET https://127.0.0.1:34709/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
-time="2025-03-05T03:45:31Z" level=warning msg="Too many requests, retrying after delay" after=2 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:34709/tests/ping"
-2025/03/05 03:45:33.146304 WARN RESTY 429 GET https://127.0.0.1:34709/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
-time="2025-03-05T03:45:33Z" level=warning msg="Too many requests, retrying after delay" after=4 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:34709/tests/ping"
---- PASS: TestHandleTooManyRequests (13.06s)
+2026/04/07 10:13:35.452609 WARN RESTY 429 GET https://127.0.0.1:35819/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
+time="2026-04-07T10:13:35Z" level=warning msg="Too many requests, retrying after delay" after=1 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:35819/tests/ping"
+2026/04/07 10:13:36.454428 WARN RESTY 429 GET https://127.0.0.1:35819/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
+time="2026-04-07T10:13:36Z" level=warning msg="Too many requests, retrying after delay" after=1 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:35819/tests/ping"
+2026/04/07 10:13:37.458271 WARN RESTY 429 GET https://127.0.0.1:35819/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
+time="2026-04-07T10:13:37Z" level=warning msg="Too many requests, retrying after delay" after=8 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:35819/tests/ping"
+2026/04/07 10:13:45.494213 WARN RESTY 429 GET https://127.0.0.1:35819/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
+time="2026-04-07T10:13:45Z" level=warning msg="Too many requests, retrying after delay" after=4 method=GET pkg=go-proton-api status=429 url="https://127.0.0.1:35819/tests/ping"
+--- PASS: TestHandleTooManyRequests (14.07s)
 === RUN   TestHandleTooManyRequests503
-2025/03/05 03:45:37.170247 WARN RESTY 503 GET https://127.0.0.1:34185/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
-time="2025-03-05T03:45:37Z" level=warning msg="Too many requests, retrying after delay" after=5 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:34185/tests/ping"
-2025/03/05 03:45:42.194702 WARN RESTY 503 GET https://127.0.0.1:34185/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
-time="2025-03-05T03:45:42Z" level=warning msg="Too many requests, retrying after delay" after=3 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:34185/tests/ping"
-2025/03/05 03:45:45.210323 WARN RESTY 503 GET https://127.0.0.1:34185/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
-time="2025-03-05T03:45:45Z" level=warning msg="Too many requests, retrying after delay" after=2 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:34185/tests/ping"
-2025/03/05 03:45:47.218346 WARN RESTY 503 GET https://127.0.0.1:34185/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
-time="2025-03-05T03:45:47Z" level=warning msg="Too many requests, retrying after delay" after=2 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:34185/tests/ping"
---- PASS: TestHandleTooManyRequests503 (12.06s)
+2026/04/07 10:13:49.524385 WARN RESTY 503 GET https://127.0.0.1:41995/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
+time="2026-04-07T10:13:49Z" level=warning msg="Too many requests, retrying after delay" after=4 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41995/tests/ping"
+2026/04/07 10:13:53.546080 WARN RESTY 503 GET https://127.0.0.1:41995/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
+time="2026-04-07T10:13:53Z" level=warning msg="Too many requests, retrying after delay" after=7 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41995/tests/ping"
+2026/04/07 10:14:00.578591 WARN RESTY 503 GET https://127.0.0.1:41995/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
+time="2026-04-07T10:14:00Z" level=warning msg="Too many requests, retrying after delay" after=8 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41995/tests/ping"
+2026/04/07 10:14:08.619018 WARN RESTY 503 GET https://127.0.0.1:41995/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
+time="2026-04-07T10:14:08Z" level=warning msg="Too many requests, retrying after delay" after=1 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41995/tests/ping"
+--- PASS: TestHandleTooManyRequests503 (20.11s)
 === RUN   TestHandleTooManyRequests_Malformed
-2025/03/05 03:45:49.226962 WARN RESTY 429 GET http://127.0.0.1:34275/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
-time="2025-03-05T03:45:49Z" level=warning msg="Too many requests, retrying after delay" after=10 method=GET pkg=go-proton-api status=429 url="http://127.0.0.1:34275/tests/ping"
---- PASS: TestHandleTooManyRequests_Malformed (10.05s)
+2026/04/07 10:14:09.623566 WARN RESTY 429 GET http://127.0.0.1:38191/tests/ping: 429 Too Many Requests (Code=0, Status=429), Attempt 1
+time="2026-04-07T10:14:09Z" level=warning msg="Too many requests, retrying after delay" after=10 method=GET pkg=go-proton-api status=429 url="http://127.0.0.1:38191/tests/ping"
+--- PASS: TestHandleTooManyRequests_Malformed (10.03s)
 === RUN   TestHandleUnprocessableEntity
-2025/03/05 03:45:59.278650 WARN RESTY 422 GET http://127.0.0.1:40151/core/v4/addresses: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
-2025/03/05 03:45:59.278662 ERROR RESTY 422 GET http://127.0.0.1:40151/core/v4/addresses: 422 Unprocessable Entity (Code=0, Status=422)
+2026/04/07 10:14:19.650440 WARN RESTY 422 GET http://127.0.0.1:46353/core/v4/addresses: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
+2026/04/07 10:14:19.650453 ERROR RESTY 422 GET http://127.0.0.1:46353/core/v4/addresses: 422 Unprocessable Entity (Code=0, Status=422)
 --- PASS: TestHandleUnprocessableEntity (0.00s)
 === RUN   TestHandleDialFailure
-2025/03/05 03:45:59.278837 WARN RESTY Get "http://127.0.0.1:46261/core/v4/addresses": simulating network error, Attempt 1
-2025/03/05 03:45:59.381967 WARN RESTY Get "http://127.0.0.1:46261/core/v4/addresses": simulating network error, Attempt 2
-2025/03/05 03:45:59.557913 WARN RESTY Get "http://127.0.0.1:46261/core/v4/addresses": simulating network error, Attempt 3
-2025/03/05 03:45:59.825924 WARN RESTY Get "http://127.0.0.1:46261/core/v4/addresses": simulating network error, Attempt 4
---- PASS: TestHandleDialFailure (1.16s)
+2026/04/07 10:14:19.650605 WARN RESTY Get "http://127.0.0.1:34607/core/v4/addresses": simulating network error, Attempt 1
+2026/04/07 10:14:19.753688 WARN RESTY Get "http://127.0.0.1:34607/core/v4/addresses": simulating network error, Attempt 2
+2026/04/07 10:14:19.865688 WARN RESTY Get "http://127.0.0.1:34607/core/v4/addresses": simulating network error, Attempt 3
+2026/04/07 10:14:20.213691 WARN RESTY Get "http://127.0.0.1:34607/core/v4/addresses": simulating network error, Attempt 4
+--- PASS: TestHandleDialFailure (1.34s)
 === RUN   TestHandleTooManyDialFailures
-2025/03/05 03:46:00.438667 WARN RESTY Get "http://127.0.0.1:34025/core/v4/addresses": simulating network error, Attempt 1
-2025/03/05 03:46:00.541867 WARN RESTY Get "http://127.0.0.1:34025/core/v4/addresses": simulating network error, Attempt 2
-2025/03/05 03:46:00.738405 WARN RESTY Get "http://127.0.0.1:34025/core/v4/addresses": simulating network error, Attempt 3
-2025/03/05 03:46:00.941898 WARN RESTY Get "http://127.0.0.1:34025/core/v4/addresses": simulating network error, Attempt 4
-2025/03/05 03:46:01.446117 WARN RESTY Get "http://127.0.0.1:34025/core/v4/addresses": simulating network error, Attempt 5
-2025/03/05 03:46:03.021903 WARN RESTY Get "http://127.0.0.1:34025/core/v4/addresses": simulating network error, Attempt 6
-2025/03/05 03:46:03.021932 ERROR RESTY Get "http://127.0.0.1:34025/core/v4/addresses": simulating network error
---- PASS: TestHandleTooManyDialFailures (2.58s)
+2026/04/07 10:14:20.986353 WARN RESTY Get "http://127.0.0.1:38771/core/v4/addresses": simulating network error, Attempt 1
+2026/04/07 10:14:21.089695 WARN RESTY Get "http://127.0.0.1:38771/core/v4/addresses": simulating network error, Attempt 2
+2026/04/07 10:14:21.229683 WARN RESTY Get "http://127.0.0.1:38771/core/v4/addresses": simulating network error, Attempt 3
+2026/04/07 10:14:21.609698 WARN RESTY Get "http://127.0.0.1:38771/core/v4/addresses": simulating network error, Attempt 4
+2026/04/07 10:14:22.297701 WARN RESTY Get "http://127.0.0.1:38771/core/v4/addresses": simulating network error, Attempt 5
+2026/04/07 10:14:23.149698 WARN RESTY Get "http://127.0.0.1:38771/core/v4/addresses": simulating network error, Attempt 6
+2026/04/07 10:14:23.149729 ERROR RESTY Get "http://127.0.0.1:38771/core/v4/addresses": simulating network error
+--- PASS: TestHandleTooManyDialFailures (2.16s)
 === RUN   TestRetriesWithContextTimeout
-2025/03/05 03:46:04.026053 WARN RESTY Get "http://127.0.0.1:41473/core/v4/addresses": context deadline exceeded, Attempt 1
-2025/03/05 03:46:04.026080 ERROR RESTY Get "http://127.0.0.1:41473/core/v4/addresses": context deadline exceeded
---- PASS: TestRetriesWithContextTimeout (1.00s)
+2026/04/07 10:14:24.157844 WARN RESTY Get "http://127.0.0.1:33159/core/v4/addresses": context deadline exceeded, Attempt 1
+2026/04/07 10:14:24.157870 ERROR RESTY Get "http://127.0.0.1:33159/core/v4/addresses": context deadline exceeded
+--- PASS: TestRetriesWithContextTimeout (1.01s)
 === RUN   TestReturnErrNoConnection
-2025/03/05 03:46:04.026281 WARN RESTY Get "http://127.0.0.1:45709/core/v4/addresses": simulating network error, Attempt 1
-2025/03/05 03:46:04.129867 WARN RESTY Get "http://127.0.0.1:45709/core/v4/addresses": simulating network error, Attempt 2
-2025/03/05 03:46:04.301891 WARN RESTY Get "http://127.0.0.1:45709/core/v4/addresses": simulating network error, Attempt 3
-2025/03/05 03:46:04.581915 WARN RESTY Get "http://127.0.0.1:45709/core/v4/addresses": simulating network error, Attempt 4
-2025/03/05 03:46:05.137882 WARN RESTY Get "http://127.0.0.1:45709/core/v4/addresses": simulating network error, Attempt 5
-2025/03/05 03:46:06.437911 WARN RESTY Get "http://127.0.0.1:45709/core/v4/addresses": simulating network error, Attempt 6
-2025/03/05 03:46:06.437949 ERROR RESTY Get "http://127.0.0.1:45709/core/v4/addresses": simulating network error
---- PASS: TestReturnErrNoConnection (2.41s)
+2026/04/07 10:14:24.158073 WARN RESTY Get "http://127.0.0.1:41299/core/v4/addresses": simulating network error, Attempt 1
+2026/04/07 10:14:24.261696 WARN RESTY Get "http://127.0.0.1:41299/core/v4/addresses": simulating network error, Attempt 2
+2026/04/07 10:14:24.377685 WARN RESTY Get "http://127.0.0.1:41299/core/v4/addresses": simulating network error, Attempt 3
+2026/04/07 10:14:24.733685 WARN RESTY Get "http://127.0.0.1:41299/core/v4/addresses": simulating network error, Attempt 4
+2026/04/07 10:14:25.209687 WARN RESTY Get "http://127.0.0.1:41299/core/v4/addresses": simulating network error, Attempt 5
+2026/04/07 10:14:26.621687 WARN RESTY Get "http://127.0.0.1:41299/core/v4/addresses": simulating network error, Attempt 6
+2026/04/07 10:14:26.621720 ERROR RESTY Get "http://127.0.0.1:41299/core/v4/addresses": simulating network error
+--- PASS: TestReturnErrNoConnection (2.46s)
 === RUN   TestStatusCallbacks
-2025/03/05 03:46:06.438596 WARN RESTY Get "https://127.0.0.1:39155/tests/ping": dial failed (not allowed), Attempt 1
-2025/03/05 03:46:06.541976 WARN RESTY Get "https://127.0.0.1:39155/tests/ping": dial failed (not allowed), Attempt 2
-2025/03/05 03:46:06.713944 WARN RESTY Get "https://127.0.0.1:39155/tests/ping": dial failed (not allowed), Attempt 3
-2025/03/05 03:46:07.061956 WARN RESTY Get "https://127.0.0.1:39155/tests/ping": dial failed (not allowed), Attempt 4
-2025/03/05 03:46:07.061989 ERROR RESTY Get "https://127.0.0.1:39155/tests/ping": dial failed (not allowed)
-2025/03/05 03:46:07.102639 WARN RESTY Get "https://127.0.0.1:39155/tests/ping": net/http: HTTP/1.x transport connection broken: malformed HTTP response "H", Attempt 1
-2025/03/05 03:46:07.218449 WARN RESTY Get "https://127.0.0.1:39155/tests/ping": read failed (limit reached), Attempt 2
-2025/03/05 03:46:07.402977 WARN RESTY Get "https://127.0.0.1:39155/tests/ping": read failed (limit reached), Attempt 3
-2025/03/05 03:46:07.735446 WARN RESTY Get "https://127.0.0.1:39155/tests/ping": read failed (limit reached), Attempt 4
-2025/03/05 03:46:07.735476 ERROR RESTY Get "https://127.0.0.1:39155/tests/ping": read failed (limit reached)
---- PASS: TestStatusCallbacks (1.31s)
+2026/04/07 10:14:26.633717 WARN RESTY Get "https://127.0.0.1:37323/tests/ping": dial failed (not allowed), Attempt 1
+2026/04/07 10:14:26.734030 WARN RESTY Get "https://127.0.0.1:37323/tests/ping": dial failed (not allowed), Attempt 2
+2026/04/07 10:14:26.851820 WARN RESTY Get "https://127.0.0.1:37323/tests/ping": dial failed (not allowed), Attempt 3
+2026/04/07 10:14:27.086954 WARN RESTY Get "https://127.0.0.1:37323/tests/ping": dial failed (not allowed), Attempt 4
+2026/04/07 10:14:27.086986 ERROR RESTY Get "https://127.0.0.1:37323/tests/ping": dial failed (not allowed)
+2026/04/07 10:14:27.117911 WARN RESTY Get "https://127.0.0.1:37323/tests/ping": net/http: HTTP/1.x transport connection broken: malformed HTTP response "H", Attempt 1
+2026/04/07 10:14:27.225705 WARN RESTY Get "https://127.0.0.1:37323/tests/ping": read failed (limit reached), Attempt 2
+2026/04/07 10:14:27.352575 WARN RESTY Get "https://127.0.0.1:37323/tests/ping": read failed (limit reached), Attempt 3
+2026/04/07 10:14:27.670265 WARN RESTY Get "https://127.0.0.1:37323/tests/ping": read failed (limit reached), Attempt 4
+2026/04/07 10:14:27.670292 ERROR RESTY Get "https://127.0.0.1:37323/tests/ping": read failed (limit reached)
+--- PASS: TestStatusCallbacks (1.05s)
 === RUN   Test503IsReportedAsAPIError
-2025/03/05 03:46:07.749659 WARN RESTY 503 GET http://127.0.0.1:39099/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 1
-time="2025-03-05T03:46:07Z" level=warning msg="Too many requests, retrying after delay" after=11 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:39099/core/v4/addresses"
-2025/03/05 03:46:18.802090 WARN RESTY 503 GET http://127.0.0.1:39099/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 2
-time="2025-03-05T03:46:18Z" level=warning msg="Too many requests, retrying after delay" after=18 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:39099/core/v4/addresses"
-2025/03/05 03:46:36.890109 WARN RESTY 503 GET http://127.0.0.1:39099/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 3
-time="2025-03-05T03:46:36Z" level=warning msg="Too many requests, retrying after delay" after=16 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:39099/core/v4/addresses"
-2025/03/05 03:46:52.970109 WARN RESTY 503 GET http://127.0.0.1:39099/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 4
-time="2025-03-05T03:46:52Z" level=warning msg="Too many requests, retrying after delay" after=11 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:39099/core/v4/addresses"
-2025/03/05 03:47:04.026096 WARN RESTY 503 GET http://127.0.0.1:39099/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 5
-time="2025-03-05T03:47:04Z" level=warning msg="Too many requests, retrying after delay" after=10 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:39099/core/v4/addresses"
-2025/03/05 03:47:14.074263 WARN RESTY 503 GET http://127.0.0.1:39099/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 6
-2025/03/05 03:47:14.074283 ERROR RESTY 503 GET http://127.0.0.1:39099/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503)
---- PASS: Test503IsReportedAsAPIError (66.33s)
+2026/04/07 10:14:27.676582 WARN RESTY 503 GET http://127.0.0.1:38251/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 1
+time="2026-04-07T10:14:27Z" level=warning msg="Too many requests, retrying after delay" after=16 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:38251/core/v4/addresses"
+2026/04/07 10:14:43.754371 WARN RESTY 503 GET http://127.0.0.1:38251/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 2
+time="2026-04-07T10:14:43Z" level=warning msg="Too many requests, retrying after delay" after=19 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:38251/core/v4/addresses"
+2026/04/07 10:15:02.794264 WARN RESTY 503 GET http://127.0.0.1:38251/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 3
+time="2026-04-07T10:15:02Z" level=warning msg="Too many requests, retrying after delay" after=12 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:38251/core/v4/addresses"
+2026/04/07 10:15:14.854044 WARN RESTY 503 GET http://127.0.0.1:38251/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 4
+time="2026-04-07T10:15:14Z" level=warning msg="Too many requests, retrying after delay" after=11 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:38251/core/v4/addresses"
+2026/04/07 10:15:25.906178 WARN RESTY 503 GET http://127.0.0.1:38251/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 5
+time="2026-04-07T10:15:25Z" level=warning msg="Too many requests, retrying after delay" after=16 method=GET pkg=go-proton-api status=503 url="http://127.0.0.1:38251/core/v4/addresses"
+2026/04/07 10:15:41.954688 WARN RESTY 503 GET http://127.0.0.1:38251/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503), Attempt 6
+2026/04/07 10:15:41.954714 ERROR RESTY 503 GET http://127.0.0.1:38251/core/v4/addresses: 503 Service Unavailable (Code=0, Status=503)
+--- PASS: Test503IsReportedAsAPIError (74.28s)
 === RUN   TestNetCtl_ReadLimit
 --- PASS: TestNetCtl_ReadLimit (0.00s)
 === RUN   TestNetCtl_WriteLimit
 --- PASS: TestNetCtl_WriteLimit (0.00s)
 === RUN   TestNetError_DropOnWrite
-2025/03/05 03:47:14 http: TLS handshake error from [::1]:46096: write: connection closed
-2025/03/05 03:47:14.081133 WARN RESTY Get "https://[::]:34003/tests/ping": read tcp [::1]:46096->[::1]:34003: read: connection reset by peer, Attempt 1
-2025/03/05 03:47:14 http: TLS handshake error from [::1]:46106: write: connection closed
-2025/03/05 03:47:14.187232 WARN RESTY Get "https://[::]:34003/tests/ping": read tcp [::1]:46106->[::1]:34003: read: connection reset by peer, Attempt 2
-2025/03/05 03:47:14 http: TLS handshake error from [::1]:46122: write: connection closed
-2025/03/05 03:47:14.371147 WARN RESTY Get "https://[::]:34003/tests/ping": read tcp [::1]:46122->[::1]:34003: read: connection reset by peer, Attempt 3
-2025/03/05 03:47:14 http: TLS handshake error from [::1]:46126: write: connection closed
-2025/03/05 03:47:14.747291 WARN RESTY Get "https://[::]:34003/tests/ping": read tcp [::1]:46126->[::1]:34003: read: connection reset by peer, Attempt 4
-2025/03/05 03:47:14.747306 ERROR RESTY Get "https://[::]:34003/tests/ping": read tcp [::1]:46126->[::1]:34003: read: connection reset by peer
+2026/04/07 10:15:41 http: TLS handshake error from [::1]:38572: write: connection closed
+2026/04/07 10:15:41.973160 WARN RESTY Get "https://[::]:39831/tests/ping": read tcp [::1]:38572->[::1]:39831: read: connection reset by peer, Attempt 1
+2026/04/07 10:15:42 http: TLS handshake error from [::1]:38586: write: connection closed
+2026/04/07 10:15:42.088319 WARN RESTY Get "https://[::]:39831/tests/ping": read tcp [::1]:38586->[::1]:39831: read: connection reset by peer, Attempt 2
+2026/04/07 10:15:42 http: TLS handshake error from [::1]:38600: write: connection closed
+2026/04/07 10:15:42.231546 WARN RESTY Get "https://[::]:39831/tests/ping": read tcp [::1]:38600->[::1]:39831: read: connection reset by peer, Attempt 3
+2026/04/07 10:15:42 http: TLS handshake error from [::1]:38614: write: connection closed
+2026/04/07 10:15:42.631843 WARN RESTY Get "https://[::]:39831/tests/ping": read tcp [::1]:38614->[::1]:39831: read: connection reset by peer, Attempt 4
+2026/04/07 10:15:42.631888 ERROR RESTY Get "https://[::]:39831/tests/ping": read tcp [::1]:38614->[::1]:39831: read: connection reset by peer
 --- PASS: TestNetError_DropOnWrite (0.67s)
 === RUN   TestAPIError_DeserializeWithoutDetails
 --- PASS: TestAPIError_DeserializeWithoutDetails (0.00s)
@@ -1582,115 +1619,116 @@
 === RUN   TestAPIError_DeserializeWithDetailsArray
 --- PASS: TestAPIError_DeserializeWithDetailsArray (0.00s)
 === RUN   TestNetError_RouteInErrorMessage
-2025/03/05 03:47:14.762305 WARN RESTY 400 GET http://127.0.0.1:33921/internal/quark/test/ping?strInput=: 400 Bad Request (Code=0, Status=400), Attempt 1
-2025/03/05 03:47:14.762326 ERROR RESTY 400 GET http://127.0.0.1:33921/internal/quark/test/ping?strInput=: 400 Bad Request (Code=0, Status=400)
---- PASS: TestNetError_RouteInErrorMessage (0.01s)
+2026/04/07 10:15:42.633698 WARN RESTY 400 GET http://127.0.0.1:37203/internal/quark/test/ping?strInput=: 400 Bad Request (Code=0, Status=400), Attempt 1
+2026/04/07 10:15:42.633763 ERROR RESTY 400 GET http://127.0.0.1:37203/internal/quark/test/ping?strInput=: 400 Bad Request (Code=0, Status=400)
+--- PASS: TestNetError_RouteInErrorMessage (0.00s)
 PASS
-ok  	github.com/henrybear327/go-proton-api	244.045s
+ok  	github.com/henrybear327/go-proton-api	240.201s
 === RUN   TestServer_Quark_CreateUser
---- PASS: TestServer_Quark_CreateUser (2.00s)
+--- PASS: TestServer_Quark_CreateUser (2.28s)
 === RUN   TestServer_Quark_CreateAddress
---- PASS: TestServer_Quark_CreateAddress (0.76s)
+--- PASS: TestServer_Quark_CreateAddress (0.95s)
 === RUN   TestServer_LoginLogout
-2025/03/05 03:43:14.300740 WARN RESTY 401 DELETE https://127.0.0.1:34829/auth/v4: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:43:14.300762 ERROR RESTY 401 DELETE https://127.0.0.1:34829/auth/v4: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:43:14.301088 WARN RESTY 422 POST https://127.0.0.1:34829/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
-2025/03/05 03:43:14.301099 ERROR RESTY 422 POST https://127.0.0.1:34829/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
---- PASS: TestServer_LoginLogout (0.62s)
+2026/04/07 10:11:46.517772 WARN RESTY 401 DELETE https://127.0.0.1:42245/auth/v4: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:11:46.517801 ERROR RESTY 401 DELETE https://127.0.0.1:42245/auth/v4: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:11:46.518285 WARN RESTY 422 POST https://127.0.0.1:42245/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
+2026/04/07 10:11:46.518302 ERROR RESTY 422 POST https://127.0.0.1:42245/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
+--- PASS: TestServer_LoginLogout (0.69s)
 === RUN   TestServerMulti
-2025/03/05 03:43:15.461148 WARN RESTY 401 GET https://127.0.0.1:40665/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:43:15.461196 ERROR RESTY 401 GET https://127.0.0.1:40665/core/v4/users: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:43:15.461720 WARN RESTY 422 POST https://127.0.0.1:40665/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
-2025/03/05 03:43:15.461743 ERROR RESTY 422 POST https://127.0.0.1:40665/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
---- PASS: TestServerMulti (1.16s)
+2026/04/07 10:11:47.849495 WARN RESTY 401 GET https://127.0.0.1:38107/core/v4/users: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:11:47.849531 ERROR RESTY 401 GET https://127.0.0.1:38107/core/v4/users: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:11:47.850103 WARN RESTY 422 POST https://127.0.0.1:38107/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
+2026/04/07 10:11:47.850133 ERROR RESTY 422 POST https://127.0.0.1:38107/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
+--- PASS: TestServerMulti (1.33s)
 === RUN   TestServer_Ping
-2025/03/05 03:43:15.464609 WARN RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed), Attempt 1
-2025/03/05 03:43:15.565574 WARN RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed), Attempt 2
-2025/03/05 03:43:15.762077 WARN RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed), Attempt 3
-2025/03/05 03:43:16.126053 WARN RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed), Attempt 4
-2025/03/05 03:43:16.126101 ERROR RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed)
-2025/03/05 03:43:16.142013 WARN RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
-time="2025-03-05T03:43:16Z" level=warning msg="Too many requests, retrying after delay" after=14 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41507/tests/ping"
-2025/03/05 03:43:30.206264 WARN RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 2
-time="2025-03-05T03:43:30Z" level=warning msg="Too many requests, retrying after delay" after=12 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41507/tests/ping"
-2025/03/05 03:43:42.262386 WARN RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 3
-time="2025-03-05T03:43:42Z" level=warning msg="Too many requests, retrying after delay" after=17 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41507/tests/ping"
-2025/03/05 03:43:59.346231 WARN RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 4
-2025/03/05 03:43:59.346248 ERROR RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503)
-2025/03/05 03:43:59.346379 WARN RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed), Attempt 1
-2025/03/05 03:43:59.449966 WARN RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed), Attempt 2
-2025/03/05 03:43:59.590086 WARN RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed), Attempt 3
-2025/03/05 03:43:59.977956 WARN RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed), Attempt 4
-2025/03/05 03:43:59.977991 ERROR RESTY Get "https://127.0.0.1:41507/tests/ping": dial failed (not allowed)
-2025/03/05 03:43:59.992859 WARN RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
-time="2025-03-05T03:43:59Z" level=warning msg="Too many requests, retrying after delay" after=14 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41507/tests/ping"
-2025/03/05 03:44:14.006569 WARN RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 2
-time="2025-03-05T03:44:14Z" level=warning msg="Too many requests, retrying after delay" after=19 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41507/tests/ping"
-2025/03/05 03:44:33.098181 WARN RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 3
-time="2025-03-05T03:44:33Z" level=warning msg="Too many requests, retrying after delay" after=15 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41507/tests/ping"
-2025/03/05 03:44:48.170196 WARN RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 4
-2025/03/05 03:44:48.170216 ERROR RESTY 503 GET https://127.0.0.1:41507/tests/ping: 503 Service Unavailable (Code=0, Status=503)
---- PASS: TestServer_Ping (92.71s)
+2026/04/07 10:11:47.853844 WARN RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed), Attempt 1
+2026/04/07 10:11:47.954758 WARN RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed), Attempt 2
+2026/04/07 10:11:48.104812 WARN RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed), Attempt 3
+2026/04/07 10:11:48.448804 WARN RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed), Attempt 4
+2026/04/07 10:11:48.448853 ERROR RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed)
+2026/04/07 10:11:48.464585 WARN RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
+time="2026-04-07T10:11:48Z" level=warning msg="Too many requests, retrying after delay" after=11 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41955/tests/ping"
+2026/04/07 10:11:59.519468 WARN RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 2
+time="2026-04-07T10:11:59Z" level=warning msg="Too many requests, retrying after delay" after=10 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41955/tests/ping"
+2026/04/07 10:12:09.565244 WARN RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 3
+time="2026-04-07T10:12:09Z" level=warning msg="Too many requests, retrying after delay" after=13 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41955/tests/ping"
+2026/04/07 10:12:22.625970 WARN RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 4
+2026/04/07 10:12:22.625993 ERROR RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503)
+2026/04/07 10:12:22.626239 WARN RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed), Attempt 1
+2026/04/07 10:12:22.727096 WARN RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed), Attempt 2
+2026/04/07 10:12:22.898227 WARN RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed), Attempt 3
+2026/04/07 10:12:23.184083 WARN RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed), Attempt 4
+2026/04/07 10:12:23.184122 ERROR RESTY Get "https://127.0.0.1:41955/tests/ping": dial failed (not allowed)
+2026/04/07 10:12:23.199472 WARN RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 1
+time="2026-04-07T10:12:23Z" level=warning msg="Too many requests, retrying after delay" after=16 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41955/tests/ping"
+2026/04/07 10:12:39.279223 WARN RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 2
+time="2026-04-07T10:12:39Z" level=warning msg="Too many requests, retrying after delay" after=17 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41955/tests/ping"
+2026/04/07 10:12:56.358367 WARN RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 3
+time="2026-04-07T10:12:56Z" level=warning msg="Too many requests, retrying after delay" after=15 method=GET pkg=go-proton-api status=503 url="https://127.0.0.1:41955/tests/ping"
+2026/04/07 10:13:11.427383 WARN RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503), Attempt 4
+2026/04/07 10:13:11.427444 ERROR RESTY 503 GET https://127.0.0.1:41955/tests/ping: 503 Service Unavailable (Code=0, Status=503)
+--- PASS: TestServer_Ping (83.58s)
 === RUN   TestServer_Bool
---- PASS: TestServer_Bool (1.58s)
+--- PASS: TestServer_Bool (0.88s)
 === RUN   TestServer_Messages
---- PASS: TestServer_Messages (1.99s)
+--- PASS: TestServer_Messages (1.28s)
 === RUN   TestServer_GetMessageMetadataPage
---- PASS: TestServer_GetMessageMetadataPage (1.58s)
+--- PASS: TestServer_GetMessageMetadataPage (1.25s)
 === RUN   TestServer_MessageFilter
---- PASS: TestServer_MessageFilter (1.94s)
+2026/04/07 10:13:16 http: TLS handshake error from 127.0.0.1:60876: EOF
+--- PASS: TestServer_MessageFilter (1.17s)
 === RUN   TestServer_MessageFilterDesc
---- PASS: TestServer_MessageFilterDesc (1.16s)
+--- PASS: TestServer_MessageFilterDesc (0.81s)
 === RUN   TestServer_MessageIDs
---- PASS: TestServer_MessageIDs (4.66s)
+--- PASS: TestServer_MessageIDs (3.33s)
 === RUN   TestServer_MessagesDelete
---- PASS: TestServer_MessagesDelete (1.83s)
+--- PASS: TestServer_MessagesDelete (1.03s)
 === RUN   TestServer_MessagesDeleteAfterUpdate
---- PASS: TestServer_MessagesDeleteAfterUpdate (1.71s)
+--- PASS: TestServer_MessagesDeleteAfterUpdate (1.09s)
 === RUN   TestServer_Events
---- PASS: TestServer_Events (4.16s)
+--- PASS: TestServer_Events (3.78s)
 === RUN   TestServer_Events_Multi
---- PASS: TestServer_Events_Multi (13.21s)
+--- PASS: TestServer_Events_Multi (6.58s)
 === RUN   TestServer_Events_Refresh
---- PASS: TestServer_Events_Refresh (1.90s)
+--- PASS: TestServer_Events_Refresh (1.61s)
 === RUN   TestServer_Events_UserSettings
---- PASS: TestServer_Events_UserSettings (1.92s)
+--- PASS: TestServer_Events_UserSettings (1.94s)
 === RUN   TestServer_RevokeUser
-2025/03/05 03:45:26.782225 WARN RESTY 401 DELETE https://127.0.0.1:37991/auth/v4: 401 Unauthorized (Code=0, Status=401), Attempt 1
-2025/03/05 03:45:26.782248 ERROR RESTY 401 DELETE https://127.0.0.1:37991/auth/v4: 401 Unauthorized (Code=0, Status=401)
-2025/03/05 03:45:26.782568 WARN RESTY 422 POST https://127.0.0.1:37991/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
-2025/03/05 03:45:26.782584 ERROR RESTY 422 POST https://127.0.0.1:37991/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
---- PASS: TestServer_RevokeUser (0.98s)
+2026/04/07 10:13:37.071288 WARN RESTY 401 DELETE https://127.0.0.1:44341/auth/v4: 401 Unauthorized (Code=0, Status=401), Attempt 1
+2026/04/07 10:13:37.071316 ERROR RESTY 401 DELETE https://127.0.0.1:44341/auth/v4: 401 Unauthorized (Code=0, Status=401)
+2026/04/07 10:13:37.071537 WARN RESTY 422 POST https://127.0.0.1:44341/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422), Attempt 1
+2026/04/07 10:13:37.071545 ERROR RESTY 422 POST https://127.0.0.1:44341/auth/v4/refresh: 422 Unprocessable Entity (Code=0, Status=422)
+--- PASS: TestServer_RevokeUser (0.87s)
 === RUN   TestServer_Calls
---- PASS: TestServer_Calls (0.98s)
+--- PASS: TestServer_Calls (0.77s)
 === RUN   TestServer_Calls_Status
-2025/03/05 03:45:28.569747 WARN RESTY 422 GET https://127.0.0.1:39121/mail/v4/messages/no%20such%20message%20ID: Message no such message ID not found (Code=2001, Status=422), Attempt 1
-2025/03/05 03:45:28.569772 ERROR RESTY 422 GET https://127.0.0.1:39121/mail/v4/messages/no%20such%20message%20ID: Message no such message ID not found (Code=2001, Status=422)
---- PASS: TestServer_Calls_Status (0.81s)
+2026/04/07 10:13:38.458313 WARN RESTY 422 GET https://127.0.0.1:44099/mail/v4/messages/no%20such%20message%20ID: Message no such message ID not found (Code=2001, Status=422), Attempt 1
+2026/04/07 10:13:38.458344 ERROR RESTY 422 GET https://127.0.0.1:44099/mail/v4/messages/no%20such%20message%20ID: Message no such message ID not found (Code=2001, Status=422)
+--- PASS: TestServer_Calls_Status (0.61s)
 === RUN   TestServer_Calls_Request
---- PASS: TestServer_Calls_Request (0.88s)
+--- PASS: TestServer_Calls_Request (0.61s)
 === RUN   TestServer_Calls_Response
---- PASS: TestServer_Calls_Response (0.92s)
+--- PASS: TestServer_Calls_Response (0.64s)
 === RUN   TestServer_Calls_Cookies
---- PASS: TestServer_Calls_Cookies (1.92s)
+--- PASS: TestServer_Calls_Cookies (0.67s)
 === RUN   TestServer_Calls_Manager
 --- PASS: TestServer_Calls_Manager (0.01s)
 === RUN   TestServer_CreateMessage
---- PASS: TestServer_CreateMessage (2.22s)
+--- PASS: TestServer_CreateMessage (0.91s)
 === RUN   TestServer_UpdateDraft
---- PASS: TestServer_UpdateDraft (3.15s)
+--- PASS: TestServer_UpdateDraft (1.81s)
 === RUN   TestServer_SendMessage
---- PASS: TestServer_SendMessage (2.18s)
+--- PASS: TestServer_SendMessage (0.84s)
 === RUN   TestServer_AuthDelete
---- PASS: TestServer_AuthDelete (1.66s)
+--- PASS: TestServer_AuthDelete (0.84s)
 === RUN   TestServer_ForceUpgrade
-2025/03/05 03:45:42.496088 WARN RESTY 400 POST https://127.0.0.1:32983/auth/v4/info: This version of the app is no longer supported, please update to continue using the app (Code=5003, Status=400), Attempt 1
-2025/03/05 03:45:42.496112 ERROR RESTY 400 POST https://127.0.0.1:32983/auth/v4/info: This version of the app is no longer supported, please update to continue using the app (Code=5003, Status=400)
---- PASS: TestServer_ForceUpgrade (0.98s)
+2026/04/07 10:13:45.039094 WARN RESTY 400 POST https://127.0.0.1:43741/auth/v4/info: This version of the app is no longer supported, please update to continue using the app (Code=5003, Status=400), Attempt 1
+2026/04/07 10:13:45.039119 ERROR RESTY 400 POST https://127.0.0.1:43741/auth/v4/info: This version of the app is no longer supported, please update to continue using the app (Code=5003, Status=400)
+--- PASS: TestServer_ForceUpgrade (0.24s)
 === RUN   TestServer_Import
---- PASS: TestServer_Import (2.74s)
+--- PASS: TestServer_Import (0.69s)
 === RUN   TestServer_Import_Dedup
---- PASS: TestServer_Import_Dedup (2.34s)
+--- PASS: TestServer_Import_Dedup (0.69s)
 === RUN   TestServer_Labels
 === RUN   TestServer_Labels/received_flag,_no_actions
 === RUN   TestServer_Labels/sent_flag,_no_actions
@@ -1721,35 +1759,35 @@
 === RUN   TestServer_Labels/scheduled_flag,_add_trash,_remove_trash
 === RUN   TestServer_Labels/received_flag,_add_inbox,_add_trash,_remove_inbox
 === RUN   TestServer_Labels/scheduled_&_sent_flags,_add_scheduled,_add_sent
---- PASS: TestServer_Labels (2.47s)
+--- PASS: TestServer_Labels (0.73s)
     --- PASS: TestServer_Labels/received_flag,_no_actions (0.00s)
     --- PASS: TestServer_Labels/sent_flag,_no_actions (0.00s)
     --- PASS: TestServer_Labels/scheduled_flag,_no_actions (0.00s)
     --- PASS: TestServer_Labels/received_flag,_add_inbox (0.00s)
     --- PASS: TestServer_Labels/sent_flag,_add_sent (0.00s)
     --- PASS: TestServer_Labels/scheduled_flag,_add_scheduled (0.00s)
-    --- PASS: TestServer_Labels/received_flag,_add_inbox_then_add_archive (0.02s)
+    --- PASS: TestServer_Labels/received_flag,_add_inbox_then_add_archive (0.00s)
     --- PASS: TestServer_Labels/sent_flag,_add_sent_then_add_archive (0.00s)
     --- PASS: TestServer_Labels/scheduled_flag,_add_scheduled_then_add_archive (0.00s)
-    --- PASS: TestServer_Labels/received_flag,_add_inbox_then_remove_inbox (0.02s)
+    --- PASS: TestServer_Labels/received_flag,_add_inbox_then_remove_inbox (0.00s)
     --- PASS: TestServer_Labels/sent_flag,_add_sent_then_remove_sent (0.00s)
     --- PASS: TestServer_Labels/scheduled_flag,_add_scheduled_then_remove_scheduled (0.00s)
-    --- PASS: TestServer_Labels/received_flag,_add_inbox_then_remove_archive (0.01s)
+    --- PASS: TestServer_Labels/received_flag,_add_inbox_then_remove_archive (0.00s)
     --- PASS: TestServer_Labels/sent_flag,_add_sent_then_remove_archive (0.00s)
     --- PASS: TestServer_Labels/scheduled_flag,_add_scheduled_then_remove_archive (0.00s)
-    --- PASS: TestServer_Labels/received_flag,_add_inbox_then_remove_inbox_then_add_archive (0.01s)
+    --- PASS: TestServer_Labels/received_flag,_add_inbox_then_remove_inbox_then_add_archive (0.00s)
     --- PASS: TestServer_Labels/sent_flag,_add_sent_then_remove_sent_then_add_archive (0.00s)
-    --- PASS: TestServer_Labels/scheduled_flag,_add_scheduled_then_remove_scheduled_then_add_archive (0.01s)
+    --- PASS: TestServer_Labels/scheduled_flag,_add_scheduled_then_remove_scheduled_then_add_archive (0.00s)
     --- PASS: TestServer_Labels/received_flag,_add_starred (0.00s)
     --- PASS: TestServer_Labels/sent_flag,_add_starred (0.00s)
     --- PASS: TestServer_Labels/scheduled_flag,_add_starred (0.00s)
     --- PASS: TestServer_Labels/received_flag,_add_inbox,_add_starred,_remove_inbox (0.00s)
     --- PASS: TestServer_Labels/sent_flag,_add_sent,_add_starred,_remove_sent (0.00s)
-    --- PASS: TestServer_Labels/scheduled_flag,_add_scheduled,_add_starred,_remove_scheduled (0.01s)
+    --- PASS: TestServer_Labels/scheduled_flag,_add_scheduled,_add_starred,_remove_scheduled (0.00s)
     --- PASS: TestServer_Labels/received_flag,_add_trash,_remove_trash (0.00s)
     --- PASS: TestServer_Labels/sent_flag,_add_trash,_remove_trash (0.00s)
     --- PASS: TestServer_Labels/scheduled_flag,_add_trash,_remove_trash (0.00s)
-    --- PASS: TestServer_Labels/received_flag,_add_inbox,_add_trash,_remove_inbox (0.01s)
+    --- PASS: TestServer_Labels/received_flag,_add_inbox,_add_trash,_remove_inbox (0.00s)
     --- PASS: TestServer_Labels/scheduled_&_sent_flags,_add_scheduled,_add_sent (0.00s)
 === RUN   TestServer_Import_FlagsAndLabels
 === RUN   TestServer_Import_FlagsAndLabels/received_flag_-->_no_label
@@ -1765,7 +1803,7 @@
 === RUN   TestServer_Import_FlagsAndLabels/forbidden:_received_flag_-->_inbox_and_sent
 === RUN   TestServer_Import_FlagsAndLabels/forbidden:_sent_flag_-->_inbox_and_sent
 === RUN   TestServer_Import_FlagsAndLabels/forbidden:_received_flag_-->_inbox_and_archive
---- PASS: TestServer_Import_FlagsAndLabels (1.70s)
+--- PASS: TestServer_Import_FlagsAndLabels (0.83s)
     --- PASS: TestServer_Import_FlagsAndLabels/received_flag_-->_no_label (0.00s)
     --- PASS: TestServer_Import_FlagsAndLabels/received_flag_-->_inbox (0.00s)
     --- PASS: TestServer_Import_FlagsAndLabels/sent_flag_-->_sent (0.00s)
@@ -1780,13 +1818,13 @@
     --- PASS: TestServer_Import_FlagsAndLabels/forbidden:_sent_flag_-->_inbox_and_sent (0.00s)
     --- PASS: TestServer_Import_FlagsAndLabels/forbidden:_received_flag_-->_inbox_and_archive (0.00s)
 === RUN   TestServer_PublicKeys
---- PASS: TestServer_PublicKeys (2.12s)
+--- PASS: TestServer_PublicKeys (0.85s)
 === RUN   TestServer_Proxy
---- PASS: TestServer_Proxy (2.51s)
+--- PASS: TestServer_Proxy (0.98s)
 === RUN   TestServer_Proxy_Cache
---- PASS: TestServer_Proxy_Cache (6.81s)
+--- PASS: TestServer_Proxy_Cache (2.38s)
 === RUN   TestServer_Proxy_AuthDelete
---- PASS: TestServer_Proxy_AuthDelete (2.36s)
+--- PASS: TestServer_Proxy_AuthDelete (1.98s)
 === RUN   TestServer_RealProxy
     server_test.go:1484: skipping test, set the username and password to run
 --- SKIP: TestServer_RealProxy (0.00s)
@@ -1794,99 +1832,95 @@
     server_test.go:1515: skipping test, set the username and password to run
 --- SKIP: TestServer_RealProxy_Cache (0.00s)
 === RUN   TestServer_Messages_Fetch
-2025/03/05 03:46:10.582618 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/f731eddd-d538-40bf-95f8-e06ac52550d2": read failed (limit reached), Attempt 1
-2025/03/05 03:46:10.705449 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/f2342762-456a-472f-9d58-b1adcfffc8dc": read failed (limit reached), Attempt 1
-2025/03/05 03:46:10.705609 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/ab626570-cb40-4351-ae24-0b83525dbf2d": read failed (limit reached), Attempt 1
-2025/03/05 03:46:10.782547 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/a435fbe4-fe7e-4931-9cea-a934d66a95e7": read failed (limit reached), Attempt 1
-2025/03/05 03:46:10.783939 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/0a3a6f86-757e-44a5-b684-463bf49293e8": read failed (limit reached), Attempt 1
-2025/03/05 03:46:11.083882 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/b3e209ed-d55a-4371-bdf0-17e1b014fc75": read failed (limit reached), Attempt 1
-2025/03/05 03:46:11.166389 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/7293220b-aac0-42cf-bfdb-be07d4bc1b31": read failed (limit reached), Attempt 1
-2025/03/05 03:46:11.166716 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/a435fbe4-fe7e-4931-9cea-a934d66a95e7": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.242656 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/0a3a6f86-757e-44a5-b684-463bf49293e8": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.243384 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/f731eddd-d538-40bf-95f8-e06ac52550d2": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.302368 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/f2342762-456a-472f-9d58-b1adcfffc8dc": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.331765 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/a435fbe4-fe7e-4931-9cea-a934d66a95e7": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.342216 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/cb5e0240-7b5f-4c33-8f2e-2d7351bf6882": read failed (limit reached), Attempt 1
-2025/03/05 03:46:11.343880 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/7293220b-aac0-42cf-bfdb-be07d4bc1b31": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.344071 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/3363eebd-ad9e-4c68-af05-fb0d2f49b3bb": read failed (limit reached), Attempt 1
-2025/03/05 03:46:11.371362 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/ab626570-cb40-4351-ae24-0b83525dbf2d": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.371807 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/34f98a9a-73ea-4bb7-bab0-78515202481b": read failed (limit reached), Attempt 1
-2025/03/05 03:46:11.371911 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/f731eddd-d538-40bf-95f8-e06ac52550d2": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.378274 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/b3e209ed-d55a-4371-bdf0-17e1b014fc75": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.406004 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/0a3a6f86-757e-44a5-b684-463bf49293e8": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.434188 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/f2342762-456a-472f-9d58-b1adcfffc8dc": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.446158 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/3363eebd-ad9e-4c68-af05-fb0d2f49b3bb": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.446398 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/cb5e0240-7b5f-4c33-8f2e-2d7351bf6882": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.474251 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/34f98a9a-73ea-4bb7-bab0-78515202481b": read failed (limit reached), Attempt 2
-2025/03/05 03:46:11.486196 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/7293220b-aac0-42cf-bfdb-be07d4bc1b31": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.498211 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/ab626570-cb40-4351-ae24-0b83525dbf2d": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.510189 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/b3e209ed-d55a-4371-bdf0-17e1b014fc75": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.594167 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/cb5e0240-7b5f-4c33-8f2e-2d7351bf6882": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.614183 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/3363eebd-ad9e-4c68-af05-fb0d2f49b3bb": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.638173 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/34f98a9a-73ea-4bb7-bab0-78515202481b": read failed (limit reached), Attempt 3
-2025/03/05 03:46:11.650189 WARN RESTY Get "http://127.0.0.1:39369/mail/v4/messages/f731eddd-d538-40bf-95f8-e06ac52550d2": read failed (limit reached), Attempt 4
-2025/03/05 03:46:11.650215 ERROR RESTY Get "http://127.0.0.1:39369/mail/v4/messages/f731eddd-d538-40bf-95f8-e06ac52550d2": read failed (limit reached)
-2025/03/05 03:46:11.650238 ERROR RESTY context canceled
-2025/03/05 03:46:11.650244 ERROR RESTY context canceled
-2025/03/05 03:46:11.650251 ERROR RESTY context canceled
-2025/03/05 03:46:11.650256 ERROR RESTY context canceled
-2025/03/05 03:46:11.650262 ERROR RESTY context canceled
-2025/03/05 03:46:11.650268 ERROR RESTY context canceled
-2025/03/05 03:46:11.650273 ERROR RESTY context canceled
-2025/03/05 03:46:11.650278 ERROR RESTY context canceled
-2025/03/05 03:46:11.650285 ERROR RESTY context canceled
---- PASS: TestServer_Messages_Fetch (6.91s)
+2026/04/07 10:13:57.410188 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/6d6051b9-c254-4235-bb8a-ffc1e5823ae2": read failed (limit reached), Attempt 1
+2026/04/07 10:13:57.410641 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/9598f022-b6bf-4d80-9f08-74b6ffb16649": read failed (limit reached), Attempt 1
+2026/04/07 10:13:57.562931 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/03d01419-58f5-4561-ae81-28a4c81304a0": read failed (limit reached), Attempt 1
+2026/04/07 10:13:57.563219 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/bce44fdf-a026-47c0-bb29-fc56f1ce1d0d": read failed (limit reached), Attempt 1
+2026/04/07 10:13:57.563674 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/81913cbf-294e-4621-b2f3-e1420ae7fb7c": read failed (limit reached), Attempt 1
+2026/04/07 10:13:57.563868 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/78935a43-a04e-48a6-a671-02a81dc5aa6b": read failed (limit reached), Attempt 1
+2026/04/07 10:13:57.564265 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/2e67215a-4baa-4520-a3fa-66c90482d5fc": read failed (limit reached), Attempt 1
+2026/04/07 10:13:57.564445 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/6d6051b9-c254-4235-bb8a-ffc1e5823ae2": read failed (limit reached), Attempt 2
+2026/04/07 10:13:57.605546 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/9ecab7c1-b6df-4b79-8ee5-149407ad4a23": read failed (limit reached), Attempt 1
+2026/04/07 10:13:57.611175 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/9598f022-b6bf-4d80-9f08-74b6ffb16649": read failed (limit reached), Attempt 2
+2026/04/07 10:13:57.663216 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/03d01419-58f5-4561-ae81-28a4c81304a0": read failed (limit reached), Attempt 2
+2026/04/07 10:13:57.663488 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/314642d2-00b8-47f7-8179-fd75c330b0c5": read failed (limit reached), Attempt 1
+2026/04/07 10:13:57.665376 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/2e67215a-4baa-4520-a3fa-66c90482d5fc": read failed (limit reached), Attempt 2
+2026/04/07 10:13:57.665477 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/81913cbf-294e-4621-b2f3-e1420ae7fb7c": read failed (limit reached), Attempt 2
+2026/04/07 10:13:57.665862 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/78935a43-a04e-48a6-a671-02a81dc5aa6b": read failed (limit reached), Attempt 2
+2026/04/07 10:13:57.672220 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/bce44fdf-a026-47c0-bb29-fc56f1ce1d0d": read failed (limit reached), Attempt 2
+2026/04/07 10:13:57.722003 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/9ecab7c1-b6df-4b79-8ee5-149407ad4a23": read failed (limit reached), Attempt 2
+2026/04/07 10:13:57.730117 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/6d6051b9-c254-4235-bb8a-ffc1e5823ae2": read failed (limit reached), Attempt 3
+2026/04/07 10:13:57.766300 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/314642d2-00b8-47f7-8179-fd75c330b0c5": read failed (limit reached), Attempt 2
+2026/04/07 10:13:57.770030 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/78935a43-a04e-48a6-a671-02a81dc5aa6b": read failed (limit reached), Attempt 3
+2026/04/07 10:13:57.810041 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/bce44fdf-a026-47c0-bb29-fc56f1ce1d0d": read failed (limit reached), Attempt 3
+2026/04/07 10:13:57.810310 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/2e67215a-4baa-4520-a3fa-66c90482d5fc": read failed (limit reached), Attempt 3
+2026/04/07 10:13:57.818013 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/9598f022-b6bf-4d80-9f08-74b6ffb16649": read failed (limit reached), Attempt 3
+2026/04/07 10:13:57.834013 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/9ecab7c1-b6df-4b79-8ee5-149407ad4a23": read failed (limit reached), Attempt 3
+2026/04/07 10:13:57.837992 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/81913cbf-294e-4621-b2f3-e1420ae7fb7c": read failed (limit reached), Attempt 3
+2026/04/07 10:13:57.865983 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/03d01419-58f5-4561-ae81-28a4c81304a0": read failed (limit reached), Attempt 3
+2026/04/07 10:13:57.894005 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/314642d2-00b8-47f7-8179-fd75c330b0c5": read failed (limit reached), Attempt 3
+2026/04/07 10:13:58.021699 WARN RESTY Get "http://127.0.0.1:33761/mail/v4/messages/6d6051b9-c254-4235-bb8a-ffc1e5823ae2": read failed (limit reached), Attempt 4
+2026/04/07 10:13:58.021748 ERROR RESTY Get "http://127.0.0.1:33761/mail/v4/messages/6d6051b9-c254-4235-bb8a-ffc1e5823ae2": read failed (limit reached)
+2026/04/07 10:13:58.021776 ERROR RESTY context canceled
+2026/04/07 10:13:58.021780 ERROR RESTY context canceled
+2026/04/07 10:13:58.021789 ERROR RESTY context canceled
+2026/04/07 10:13:58.021797 ERROR RESTY context canceled
+2026/04/07 10:13:58.021815 ERROR RESTY context canceled
+2026/04/07 10:13:58.021821 ERROR RESTY context canceled
+2026/04/07 10:13:58.021828 ERROR RESTY context canceled
+2026/04/07 10:13:58.021849 ERROR RESTY context canceled
+--- PASS: TestServer_Messages_Fetch (4.35s)
 === RUN   TestServer_Status
-2025/03/05 03:46:15.270955 WARN RESTY Get "http://127.0.0.1:42621/core/v4/users": read failed (not allowed), Attempt 1
-2025/03/05 03:46:15.378122 WARN RESTY Get "http://127.0.0.1:42621/core/v4/users": read failed (not allowed), Attempt 2
-2025/03/05 03:46:15.514193 WARN RESTY Get "http://127.0.0.1:42621/core/v4/users": read failed (not allowed), Attempt 3
-2025/03/05 03:46:15.771404 WARN RESTY Get "http://127.0.0.1:42621/core/v4/users": read failed (not allowed), Attempt 4
-2025/03/05 03:46:15.771433 ERROR RESTY Get "http://127.0.0.1:42621/core/v4/users": read failed (not allowed)
---- PASS: TestServer_Status (3.30s)
+2026/04/07 10:13:59.486035 WARN RESTY Get "http://127.0.0.1:44879/core/v4/users": read failed (not allowed), Attempt 1
+2026/04/07 10:13:59.590024 WARN RESTY Get "http://127.0.0.1:44879/core/v4/users": read failed (not allowed), Attempt 2
+2026/04/07 10:13:59.761974 WARN RESTY Get "http://127.0.0.1:44879/core/v4/users": read failed (not allowed), Attempt 3
+2026/04/07 10:13:59.984979 WARN RESTY Get "http://127.0.0.1:44879/core/v4/users": read failed (not allowed), Attempt 4
+2026/04/07 10:13:59.985019 ERROR RESTY Get "http://127.0.0.1:44879/core/v4/users": read failed (not allowed)
+--- PASS: TestServer_Status (1.47s)
 === RUN   TestServer_Labels_Duplicates
-2025/03/05 03:46:17.251677 WARN RESTY 409 POST https://127.0.0.1:41333/core/v4/labels: 409 Conflict (Code=0, Status=409), Attempt 1
-2025/03/05 03:46:17.251698 ERROR RESTY 409 POST https://127.0.0.1:41333/core/v4/labels: 409 Conflict (Code=0, Status=409)
---- PASS: TestServer_Labels_Duplicates (1.48s)
+2026/04/07 10:14:00.830540 WARN RESTY 409 POST https://127.0.0.1:41107/core/v4/labels: 409 Conflict (Code=0, Status=409), Attempt 1
+2026/04/07 10:14:00.830569 ERROR RESTY 409 POST https://127.0.0.1:41107/core/v4/labels: 409 Conflict (Code=0, Status=409)
+--- PASS: TestServer_Labels_Duplicates (0.85s)
 === RUN   TestServer_Labels_Duplicates_Update
-2025/03/05 03:46:18.594797 WARN RESTY 409 PUT https://127.0.0.1:43027/core/v4/labels/3ebc5866-cc1e-4e29-ac74-ce1ca4898fd5: 409 Conflict (Code=0, Status=409), Attempt 1
-2025/03/05 03:46:18.594823 ERROR RESTY 409 PUT https://127.0.0.1:43027/core/v4/labels/3ebc5866-cc1e-4e29-ac74-ce1ca4898fd5: 409 Conflict (Code=0, Status=409)
---- PASS: TestServer_Labels_Duplicates_Update (1.34s)
+2026/04/07 10:14:01.525276 WARN RESTY 409 PUT https://127.0.0.1:33455/core/v4/labels/71d20028-87de-41c4-91c6-ceca6c9e6ce7: 409 Conflict (Code=0, Status=409), Attempt 1
+2026/04/07 10:14:01.525311 ERROR RESTY 409 PUT https://127.0.0.1:33455/core/v4/labels/71d20028-87de-41c4-91c6-ceca6c9e6ce7: 409 Conflict (Code=0, Status=409)
+--- PASS: TestServer_Labels_Duplicates_Update (0.70s)
 === RUN   TestServer_Labels_Subfolders
---- PASS: TestServer_Labels_Subfolders (0.91s)
+--- PASS: TestServer_Labels_Subfolders (0.73s)
 === RUN   TestServer_Labels_Subfolders_Reassign
---- PASS: TestServer_Labels_Subfolders_Reassign (0.99s)
+--- PASS: TestServer_Labels_Subfolders_Reassign (0.87s)
 === RUN   TestServer_Labels_Subfolders_DeleteParentWithChildren
---- PASS: TestServer_Labels_Subfolders_DeleteParentWithChildren (1.61s)
+--- PASS: TestServer_Labels_Subfolders_DeleteParentWithChildren (0.83s)
 === RUN   TestServer_AddressCreateDelete
---- PASS: TestServer_AddressCreateDelete (2.14s)
+--- PASS: TestServer_AddressCreateDelete (0.98s)
 === RUN   TestServer_AddressOrder
---- PASS: TestServer_AddressOrder (2.27s)
+--- PASS: TestServer_AddressOrder (1.17s)
 === RUN   TestServer_MailSettings
---- PASS: TestServer_MailSettings (1.25s)
+--- PASS: TestServer_MailSettings (0.88s)
 === RUN   TestServer_UserSettings
-2025/03/05 03:46:29.095504 WARN RESTY 500 PUT https://127.0.0.1:45975/core/v4/settings/telemetry: 500 Internal Server Error (Code=0, Status=500), Attempt 1
-2025/03/05 03:46:29.095530 ERROR RESTY 500 PUT https://127.0.0.1:45975/core/v4/settings/telemetry: 500 Internal Server Error (Code=0, Status=500)
-2025/03/05 03:46:29.095672 WARN RESTY 500 PUT https://127.0.0.1:45975/core/v4/settings/crashreports: 500 Internal Server Error (Code=0, Status=500), Attempt 1
-2025/03/05 03:46:29.095677 ERROR RESTY 500 PUT https://127.0.0.1:45975/core/v4/settings/crashreports: 500 Internal Server Error (Code=0, Status=500)
---- PASS: TestServer_UserSettings (1.32s)
+2026/04/07 10:14:07.866293 WARN RESTY 500 PUT https://127.0.0.1:37019/core/v4/settings/telemetry: 500 Internal Server Error (Code=0, Status=500), Attempt 1
+2026/04/07 10:14:07.866327 ERROR RESTY 500 PUT https://127.0.0.1:37019/core/v4/settings/telemetry: 500 Internal Server Error (Code=0, Status=500)
+2026/04/07 10:14:07.866877 WARN RESTY 500 PUT https://127.0.0.1:37019/core/v4/settings/crashreports: 500 Internal Server Error (Code=0, Status=500), Attempt 1
+2026/04/07 10:14:07.866911 ERROR RESTY 500 PUT https://127.0.0.1:37019/core/v4/settings/crashreports: 500 Internal Server Error (Code=0, Status=500)
+--- PASS: TestServer_UserSettings (0.88s)
 === RUN   TestServer_Domains
 --- PASS: TestServer_Domains (0.02s)
 === RUN   TestServer_StatusHooks
-2025/03/05 03:46:30.769136 WARN RESTY 400 GET https://127.0.0.1:35319/core/v4/addresses: Request failed with status 400 (Code=2001, Status=400), Attempt 1
-2025/03/05 03:46:30.769167 ERROR RESTY 400 GET https://127.0.0.1:35319/core/v4/addresses: Request failed with status 400 (Code=2001, Status=400)
---- PASS: TestServer_StatusHooks (1.65s)
+2026/04/07 10:14:08.665094 WARN RESTY 400 GET https://127.0.0.1:42861/core/v4/addresses: Request failed with status 400 (Code=2001, Status=400), Attempt 1
+2026/04/07 10:14:08.665141 ERROR RESTY 400 GET https://127.0.0.1:42861/core/v4/addresses: Request failed with status 400 (Code=2001, Status=400)
+--- PASS: TestServer_StatusHooks (0.78s)
 === RUN   TestServer_SendDataEvent
-2025/03/05 03:46:32.170759 WARN RESTY 400 POST https://127.0.0.1:35141/data/v1/stats: 400 Bad Request (Code=0, Status=400), Attempt 1
-2025/03/05 03:46:32.170788 ERROR RESTY 400 POST https://127.0.0.1:35141/data/v1/stats: 400 Bad Request (Code=0, Status=400)
---- PASS: TestServer_SendDataEvent (1.40s)
+2026/04/07 10:14:09.409743 WARN RESTY 400 POST https://127.0.0.1:32935/data/v1/stats: 400 Bad Request (Code=0, Status=400), Attempt 1
+2026/04/07 10:14:09.409775 ERROR RESTY 400 POST https://127.0.0.1:32935/data/v1/stats: 400 Bad Request (Code=0, Status=400)
+--- PASS: TestServer_SendDataEvent (0.74s)
 === RUN   TestServer_SendDataEventMultiple
-2025/03/05 03:46:33.705440 WARN RESTY 400 POST https://127.0.0.1:45971/data/v1/stats/multiple: 400 Bad Request (Code=0, Status=400), Attempt 1
-2025/03/05 03:46:33.705469 ERROR RESTY 400 POST https://127.0.0.1:45971/data/v1/stats/multiple: 400 Bad Request (Code=0, Status=400)
---- PASS: TestServer_SendDataEventMultiple (1.53s)
+2026/04/07 10:14:10.201125 WARN RESTY 400 POST https://127.0.0.1:40241/data/v1/stats/multiple: 400 Bad Request (Code=0, Status=400), Attempt 1
+2026/04/07 10:14:10.201153 ERROR RESTY 400 POST https://127.0.0.1:40241/data/v1/stats/multiple: 400 Bad Request (Code=0, Status=400)
+--- PASS: TestServer_SendDataEventMultiple (0.79s)
 === RUN   TestServer_GetMessageGroupCount
---- PASS: TestServer_GetMessageGroupCount (1.59s)
+--- PASS: TestServer_GetMessageGroupCount (0.90s)
 PASS
-ok  	github.com/henrybear327/go-proton-api/server	204.584s
+ok  	github.com/henrybear327/go-proton-api/server	148.665s
 === RUN   TestID
 --- PASS: TestID (0.00s)
 === RUN   Test_mergeUpdates
@@ -1900,7 +1934,7 @@
     --- PASS: Test_mergeUpdates/replace_with_updated (0.00s)
     --- PASS: Test_mergeUpdates/replace_with_delete (0.00s)
 PASS
-ok  	github.com/henrybear327/go-proton-api/server/backend	0.087s
+ok  	github.com/henrybear327/go-proton-api/server/backend	0.239s
 ?   	github.com/henrybear327/go-proton-api/server/proto	[no test files]
    create-stamp debian/debhelper-build-stamp
    dh_testroot -O--builddirectory=_build -O--buildsystem=golang
@@ -1928,12 +1962,14 @@
 dpkg-buildpackage: info: binary-only upload (no source included)
 dpkg-genchanges: info: not including original source code in upload
 I: copying local configuration
+I: user script /srv/workspace/pbuilder/4109899/tmp/hooks/B01_cleanup starting
+I: user script /srv/workspace/pbuilder/4109899/tmp/hooks/B01_cleanup finished
 I: unmounting dev/ptmx filesystem
 I: unmounting dev/pts filesystem
 I: unmounting dev/shm filesystem
 I: unmounting proc filesystem
 I: unmounting sys filesystem
 I: cleaning the build env 
-I: removing directory /srv/workspace/pbuilder/3263685 and its subdirectories
-I: Current time: Tue Mar  4 15:47:28 -12 2025
-I: pbuilder-time-stamp: 1741146448
+I: removing directory /srv/workspace/pbuilder/4109899 and its subdirectories
+I: Current time: Wed Apr  8 00:15:51 +14 2026
+I: pbuilder-time-stamp: 1775556951