On 19/12/2025 18.01, pawmal-knot--- via knot-resolver-users wrote:
Where is this value coming from/how can we alter it?

So far I've been unable to reproduce this.  I always get the minimum TTL in this case, which is 5s by default.  I even wrote a simple test for it.  The most relevant code also looks good to me (and unchanged between 5.7.6 and 6.x/master).

I wonder if those Azure servers would rarely send something else at that malfunctioning period in time.  But the cause could be something completely else; I just don't know so far.

--Vladimir

Log from the test:

[reqdbg][policy][26518.00] request packet:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 26518
;; Flags: rd  QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: Unused

;; QUESTION SECTION
example.               A

;; ADDITIONAL SECTION
[reqdbg][iterat][26518.00]   'example.' type 'A' new uid was assigned .01, parent uid .00
[reqdbg][resolv][26518.01]   => going insecure because there's no covering TA
[reqdbg][resolv][26518.01]   => using root hints
[reqdbg][iterat][26518.01]   'example.' type 'A' new uid was assigned .02, parent uid .00
[reqdbg][select][26518.02]   => id: '40992' choosing from addresses: 1 v4 + 0 v6; names to resolve: 0 v4 + 0 v6; force_resolve: 0; NO6: IPv6 is OK
[reqdbg][select][26518.02]   => id: '40992' choosing: 'k.root-servers.net.'@'193.0.14.129#00053' with timeout 400 ms zone cut: '.'
[reqdbg][resolv][26518.02]   => id: '40992' querying: 'k.root-servers.net.'@'193.0.14.129#00053' zone cut: '.' qname: 'example.' qtype: 'A' proto: 'udp'
[reqdbg][select][26518.02]   => id: '40992' updating: 'k.root-servers.net.'@'193.0.14.129#00053' zone cut: '.' with rtt 102 to srtt: 102 and variance: 51
[reqdbg][iterat][26518.02]   <= answer received:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 40992
;; Flags: qr aa  QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: do; UDP size: 1232 B; ext-rcode: Unused

;; QUESTION SECTION
example.               A

;; ADDITIONAL SECTION

[reqdbg][iterat][26518.02]   <= rcode: NOERROR
[reqdbg][cache ][26518.02]   => stashed packet: rank 020, TTL 5, A example. (48 B)
[reqdbg][resolv][26518.02]   AD: request NOT classified as SECURE
[reqdbg][resolv][26518.02]   finished in state: 4, queries: 1, mempool: 16400 B
[reqdbg][policy][26518.00] following rrsets were marked as interesting:

[reqdbg][policy][26518.00] answer packet:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 26518
;; Flags: qr rd ra  QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: Unused

;; QUESTION SECTION
example.               A

;; ADDITIONAL SECTION

[reqdbg][policy][03130.00] request packet:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 3130
;; Flags: rd  QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: Unused

;; QUESTION SECTION
example.               A

;; ADDITIONAL SECTION
[reqdbg][iterat][03130.00]   'example.' type 'A' new uid was assigned .01, parent uid .00
[reqdbg][cache ][03130.01]   => satisfied by exact packet: rank 020, new TTL 5
[reqdbg][iterat][03130.01]   <= answer received:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 34288
;; Flags: qr aa  QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL: 0

;; QUESTION SECTION
example.               A

[reqdbg][iterat][03130.01]   <= rcode: NOERROR
[reqdbg][resolv][03130.01]   AD: request NOT classified as SECURE
[reqdbg][resolv][03130.01]   finished in state: 4, queries: 1, mempool: 16400 B
[reqdbg][policy][03130.00] following rrsets were marked as interesting:

[reqdbg][policy][03130.00] answer packet:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 3130
;; Flags: qr rd ra  QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: Unused

;; QUESTION SECTION
example.               A

;; ADDITIONAL SECTION