Fix #9847: always fall back to file timestamp