Unrecognized subdirective 'roll_keep_days'

1. The problem I’m having:

After upgrding to v2.10.2 on Rocky Linux 9.6, receiving an error about my caddyfile being malformed. I have since REM’d out the roll_keep_days directive and caddy starts without issue.

2. Error messages and/or full log output:


× caddy.service - Caddy
     Loaded: loaded (/usr/lib/systemd/system/caddy.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Fri 2025-10-31 15:36:03 EDT; 3s ago
       Docs: https://caddyserver.com/docs/
    Process: 5502 ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile (code=exited, status=1/FAILURE)
   Main PID: 5502 (code=exited, status=1/FAILURE)
        CPU: 99ms
Oct 31 15:36:03 caddy2.khaoohs.local caddy[5502]: USER=caddy
Oct 31 15:36:03 caddy2.khaoohs.local caddy[5502]: INVOCATION_ID=ce08603140fd4460b95dde7265c15b78
Oct 31 15:36:03 caddy2.khaoohs.local caddy[5502]: JOURNAL_STREAM=8:44916
Oct 31 15:36:03 caddy2.khaoohs.local caddy[5502]: SYSTEMD_EXEC_PID=5502
Oct 31 15:36:03 caddy2.khaoohs.local caddy[5502]: {"level":"info","ts":1761939363.808685,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
Oct 31 15:36:03 caddy2.khaoohs.local caddy[5502]: {"level":"info","ts":1761939363.8100834,"msg":"maxprocs: No GOMAXPROCS change to reset"}
Oct 31 15:36:03 caddy2.khaoohs.local caddy[5502]: Error: adapting config using caddyfile: parsing caddyfile tokens for 'log': unrecognized subdirective 'roll_keep_days', at /etc/caddy/Caddyfile:29
Oct 31 15:36:03 caddy2.khaoohs.local systemd[1]: caddy.service: Main process exited, code=exited, status=1/FAILURE
Oct 31 15:36:03 caddy2.khaoohs.local systemd[1]: caddy.service: Failed with result 'exit-code'.
Oct 31 15:36:03 caddy2.khaoohs.local systemd[1]: Failed to start Caddy.

3. Caddy version:

[khaoohs@caddy2 caddy]$ caddy version
v2.10.2 h1:g/gTYjGMD0dec+UgMw8SnfmJ3I9+M2TdvoRL/Ovu6U8=

4. How I installed and ran Caddy:

Installed via DNF

a. System environment:

[khaoohs@caddy2 caddy]$ cat /etc/redhat-release
Rocky Linux release 9.6 (Blue Onyx)

b. Command:


c. Service/unit/compose file:


d. My complete Caddy config:

{
        #Enable global debug
        #debug
}
# Audiobookshelf
abs.khaoohs.mooo.com abs.home.khaoohs.net {
        encode
        reverse_proxy dockarr.khaoohs.local:13378
        log {
                output file /var/log/caddy/abs.access.log {
                        roll_size 10MB
                        roll_keep 5
                        #roll_keep_days 14
                        mode 644
                }
        }
}
# Jellyfin
jf.khaoohs.mooo.com, jf.home.khaoohs.net {
        encode
        reverse_proxy 192.168.1.29:8096 {
                header_up X-Scheme https
        }
        log {
                output file /var/log/caddy/jf.access.log {
                        roll_size 10MB
                        roll_keep 5
                        #roll_keep_days 30
                        mode 644
                }
        }
}
# Calibre-Web
cal.khaoohs.mooo.com, cal.home.khaoohs.net {
        encode
        reverse_proxy 192.168.1.221:8083 {
                header_up X-Scheme https
        }
        log {
                output file /var/log/caddy/cal.access.log {
                        roll_size 10MB
                        roll_keep 5
                        #roll_keep_days
                        mode 644
                }
        }
}
# Hydrus Web
hydrus.khaoohs.mooo.com, hydrus.home.khaoohs.net {
        encode
        reverse_proxy 192.168.1.170:45869
        log {
                output file /var/log/caddy/hydrus.access.log {
                        roll_size 10MB
                        roll_keep 5
                        #roll_keep_days
                        mode 644
                }
        }
}
# Tandoor Recipes
#tandoor.khaoohs.mooo.com {
#       encode
#       reverse_proxy dockarr.khaoohs.local:8081 {
#               header_up X-Scheme https
#       }
#       log {
#               output file /var/log/caddy/tandoor-khaoohs-moo-com.access.log {
#                       roll_size 10MB
#                       roll_keep 5
#                       roll_keep_days
#                       mode 644
#               }
#       }
#}
#Mealie Recipes
mealie.khaoohs.mooo.com, mealie.home.khaoohs.net {
        encode
        reverse_proxy dockarr.khaoohs.local:9925 {
                header_up X-Scheme https
        }
        log {
                output file /var/log/caddy/mealie.access.log {
                        roll_size 10MB
                        roll_keep 5
                        #roll_keep_days
                        mode 644
                }
        }
}
#Jellyseer
js.khaoohs.mooo.com, js.home.khaoohs.net {
        encode
        reverse_proxy dockarr.khaoohs.local:5055
        log {
                output file /var/log/caddy/js.access.log {
                        roll_size 10MB
                        roll_keep 5
                        #roll_keep_days
                        mode 644
                }
        }
}
#Jellystat
jellystat.khaoohs.mooo.com, jellystat.home.khaoohs.net {
        encode
        reverse_proxy dockarr.khaoohs.local:3000
        log {
                output file /var/log/caddy/jstat.access.log {
                        roll_size 10MB
                        roll_keep 5
                        #roll_keep_days
                        mode 644
                }
        }
}
#portainer
portainer.khaoohs.mooo.com, portainer.home.khaoohs.net {
        encode
        @denied not remote_ip private_ranges
        abort @denied
        reverse_proxy dockarr.khaoohs.local:9000
        log {
                output file /var/log/caddy/portainer.access.log {
                        roll_size 10MB
                        roll_keep 5
                        #roll_keep_days
                        mode 644
                }
        }
}
# testing
khaoohs.mooo.com {
        encode
        respond "Hello from khaoohs.mooo.com"
}
# testing
home.khaoohs.net {
        # respond "This is home.khaoohs.net"
        encode
        templates
        root /srv
        file_server
        log {
                output file /var/log/caddy/home-khaoohs-net.access.log {
                        roll_size 10MB
                        roll_keep 5
                        #roll_keep_days
                        mode 644
                }
        }
}
```


The directive roll_keep_days was never a thing. We had a gap where we didn’t error it. Now we fixed it. The correct directive is roll_keep_for.

2 Likes