Skip to content

Timeouts on slower connections #713

@cliffkujala

Description

@cliffkujala

What happened?

I am experiencing timeouts when syncing to some of my replicas that are connected via site-to-site VPNs. Most work, but one has a relatively slow connection, and it is timing out.

### Can we adjust the timeout on the sync server?

2025-12-13T20:44:34.068Z	INFO	sync	sync/http.go:26	Starting sync from API	{"remote-addr": "192.168.5.8:39588"}
2025-12-13T20:44:34.121Z	INFO	sync	sync/sync.go:183	Connected to origin	{"from": "adguard.domain.com", "version": "v0.107.71"}
2025-12-13T20:44:34.881Z	INFO	sync	sync/sync.go:291	Start sync	{"from": "adguard.domain.com", "to": "adguard2.domain.com"}
2025-12-13T20:44:34.923Z	INFO	sync	sync/sync.go:312	Connected to replica	{"from": "adguard.domain.com", "to": "adguard2.domain.com", "version": "v0.107.71"}
2025-12-13T20:44:35.161Z	INFO	client	client/client.go:417	Set dns config list	{"host": "adguard2.domain.com"}
2025-12-13T20:44:35.750Z	INFO	client	client/client.go:479	Set TLS config	{"host": "adguard2.domain.com", "enabled": true}
2025-12-13T20:44:35.907Z	INFO	sync	sync/sync.go:301	Sync done	{"from": "adguard.domain.com", "to": "adguard2.domain.com", "duration": "3.6e-08s"}
2025-12-13T20:44:35.907Z	INFO	sync	sync/sync.go:291	Start sync	{"from": "adguard.domain.com", "to": "adguard3.domain.com"}
2025-12-13T20:44:36.077Z	INFO	sync	sync/sync.go:312	Connected to replica	{"from": "adguard.domain.com", "to": "adguard3.domain.com", "version": "v0.107.71"}
2025-12-13T20:44:36.616Z	INFO	client	client/client.go:417	Set dns config list	{"host": "adguard3.domain.com"}
2025-12-13T20:44:37.796Z	INFO	client	client/client.go:479	Set TLS config	{"host": "adguard3.domain.com", "enabled": true}
2025-12-13T20:44:38.016Z	INFO	sync	sync/sync.go:301	Sync done	{"from": "adguard.domain.com", "to": "adguard3.domain.com", "duration": "1.77e-07s"}
2025-12-13T20:44:38.016Z	INFO	sync	sync/sync.go:291	Start sync	{"from": "adguard.domain.com", "to": "adguard4.domain.com"}
2025-12-13T20:44:38.260Z	INFO	sync	sync/sync.go:312	Connected to replica	{"from": "adguard.domain.com", "to": "adguard4.domain.com", "version": "v0.107.71"}
2025-12-13T20:44:38.795Z	INFO	client	client/client.go:417	Set dns config list	{"host": "adguard4.domain.com"}
2025-12-13T20:44:39.674Z	INFO	client	client/client.go:338	Update client settings	{"host": "adguard4.domain.com", "name": "Kids Devices"}
2025-12-13T20:45:00.000Z	INFO	sync	sync/sync.go:154	Sync already running
2025-12-13T20:45:39.653Z	ERROR	sync	sync/action-general.go:155	error updating client setting	{"from": "adguard.domain.com", "to": "adguard4.domain.com", "client-name": "Kids Devices", "error": ": Post \"http://adguard4.domain.com/control/clients/update\": EOF"}
github.com/bakito/adguardhome-sync/internal/sync.init.func11
	/go/src/app/internal/sync/action-general.go:155
github.com/bakito/adguardhome-sync/internal/sync.(*defaultAction).sync
	/go/src/app/internal/sync/action.go:103
github.com/bakito/adguardhome-sync/internal/sync.(*worker).syncTo
	/go/src/app/internal/sync/sync.go:336
github.com/bakito/adguardhome-sync/internal/sync.(*worker).sync
	/go/src/app/internal/sync/sync.go:279
github.com/bakito/adguardhome-sync/internal/sync.(*worker).handleSync
	/go/src/app/internal/sync/http.go:27
github.com/gin-gonic/gin.(*Context).Next
	/go/pkg/mod/github.com/gin-gonic/gin@v1.11.0/context.go:192
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1
	/go/pkg/mod/github.com/gin-gonic/gin@v1.11.0/recovery.go:92
github.com/gin-gonic/gin.(*Context).Next
	/go/pkg/mod/github.com/gin-gonic/gin@v1.11.0/context.go:192
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest
	/go/pkg/mod/github.com/gin-gonic/gin@v1.11.0/gin.go:689
github.com/gin-gonic/gin.(*Engine).ServeHTTP
	/go/pkg/mod/github.com/gin-gonic/gin@v1.11.0/gin.go:643
net/http.serverHandler.ServeHTTP
	/usr/local/go/src/net/http/server.go:3340
net/http.(*conn).serve
	/usr/local/go/src/net/http/server.go:2109
2025-12-13T20:45:40.056Z	INFO	client	client/client.go:479	Set TLS config	{"host": "adguard4.domain.com", "enabled": true}
2025-12-13T20:45:40.268Z	INFO	sync	sync/sync.go:301	Sync done	{"from": "adguard.domain.com", "to": "adguard4.domain.com", "duration": "1.56e-07s"}

AdguardHome-Sync Version

v0.8.2 (2025-10-24T17:14:03Z)

AdguardHome Version

v0.107.71

OS Information

Debian GNU/Linux 12 (bookworm)/

Configuration

cron: "*/5 * * * *"
runOnStart: true
continueOnError: true
origin:
  url: http://adguard.domain.com
  username: XXXXXXXXX
  password: XXXXXXXXX
replicas:
  - url: http://adguard2.domain.com
    username: XXXXXXXXX
    password: XXXXXXXXX
  - url: http://adguard3.domain.com
    username: XXXXXXXXX
    password: XXXXXXXXX
  - url: http://adguard4.domain.com
    username: XXXXXXXXX
    password: XXXXXXXXX
api:
  port: 8080
  username: XXXXXXXXX
  password: XXXXXXXXX
  darkMode: true
  # metrics:
    # enabled: true
    # scrapeInterval: 30s
    # queryLogLimit: 10000
  # tls:
  #   # the directory of the provided tls certs
  #   certDir: /path/to/certs
  #   # the name of the cert file (default: tls.crt)
  #   certName: foo.crt
  #   # the name of the key file (default: tls.key)
  #   keyName: bar.key
features:
  generalSettings: true
  queryLogConfig: true
  statsConfig: true
  clientSettings: true
  services: true
  filters: true
  tlsConfig: true
  dhcp:
    serverConfig: true
    staticLeases: true
  dns:
    serverConfig: true
    accessLists: true
    rewrites: true

Current Applied Configuration

### AdGuardHome sync unmodified config file

Config file path: /config/adguardhome-sync.yaml



# cron expression to run in daemon mode. (default; "" = runs only once)

cron: "*/5 * * * *"

printConfigOnly: true

# runs the synchronisation on startup

runOnStart: true

# If enabled, the synchronisation task will not fail on single errors, but will log the errors and continue

continueOnError: true

origin:

  # url of the origin instance

  url: http://adguard.domain.com

  # apiPath: define an api path if other than "/control"

  # insecureSkipVerify: true # disable tls check

  username: XXXXXXXXX

  password: XXXXXXXXX

  # cookie: Origin-Cookie-Name=CCCOOOKKKIIIEEE

# replicas instances:

  # url of the replica instance

  - url: http://adguard2.domain.com

    username: XXXXXXXXX

    password: XXXXXXXXX

    # cookie: Replica2-Cookie-Name=CCCOOOKKKIIIEEE

  - url: http://adguard3.domain.com

    username: XXXXXXXXX

    password: XXXXXXXXX

    # cookie: Replica3-Cookie-Name=CCCOOOKKKIIIEEE

  - url: http://adguard4.domain.com

    username: XXXXXXXXX

    password: XXXXXXXXX

    # cookie: Replica4-Cookie-Name=CCCOOOKKKIIIEEE

  #- url: http://192.168.1.4

   # username: username

    #password: password

    # cookie: Replica2-Cookie-Name=CCCOOOKKKIIIEEE

    # autoSetup: true # if true, AdGuardHome is automatically initialized.

    # webURL: "https://some-other.url" # used in the web interface (default: <replica-url>

# Configure the sync API server, disabled if api port is 0

api:

  # Port, default 8080

�
  port: 8080

  # if username and password are defined, basic auth is applied to the sync API

  username: XXXXXXXXX

  password: XXXXXXXXX

  # enable api dark mode

  darkMode: true

  # enable metrics on path '/metrics' (api port must be != 0)# metrics:

    # enabled: true

    # scrapeInterval: 30s 

    # queryLogLimit: 10000

  # enable tls for the api server

  # tls:

  #   # the directory of the provided tls certs

  #   certDir: /path/to/certs

  #   # the name of the cert file (default: tls.crt)

  #   certName: foo.crt

  #   # the name of the key file (default: tls.key)

  #   keyName: bar.key

# Configure sync features; by default all features are enabled.:

  generalSettings: true

  queryLogConfig: true

  statsConfig: true

  clientSettings: true

  services: true

  filters: true

  tlsConfig: true

  dhcp:

    serverConfig: true

    staticLeases: true

  dns:

    serverConfig: true

    accessLists: true

    rewrites: true



### Environment Variables



   =/opt/go/adguardhome-sync

HOME=/

HOSTNAME=ffa7ccc9180c

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin



<!-- END OF GITHUB ISSUE CONTENT -->

Relevant DEBUG log output

None noted.

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions