Skip to content

Derive client tile retry config from server settings, raise per-IP budget to 80#212

Merged
stef-k merged 1 commit intomainfrom
fix/tile-budget-defaults
Mar 26, 2026
Merged

Derive client tile retry config from server settings, raise per-IP budget to 80#212
stef-k merged 1 commit intomainfrom
fix/tile-budget-defaults

Conversation

@stef-k
Copy link
Copy Markdown
Owner

@stef-k stef-k commented Mar 26, 2026

Summary

  • Increase default per-IP outbound budget from 30 → 80 (cold-cache zoom-17 needs ~35 tiles; 30 caused immediate per-IP rejection)
  • Eliminate magic numbers in retryTileLayer.js:
    • Pool size derived from burstCapacity * 0.6 (server injects via wayfarerTileConfig)
    • Slow retry interval derived from retryAfterSeconds * 3 (server injects via wayfarerTileConfig)
  • Expose TileCacheService.OutboundBurstCapacity and change TilesController.BudgetRetryAfterSeconds to internal int for config injection
  • _Layout.cshtml now passes burstCapacity and retryAfterSeconds in wayfarerTileConfig

Closes #206

Test plan

  • dotnet build passes (0 errors)
  • dotnet test passes (1407 tests)
  • Verify window.wayfarerTileConfig in browser console includes burstCapacity: 10 and retryAfterSeconds: 5
  • Cold-cache test at zoom 17-18: tiles stream in progressively, no permanent gray

- Increase default per-IP outbound budget from 30 to 80 (30 was below the
  ~35 tiles needed for a cold-cache zoom-17 load)
- Pool size derived from burstCapacity * 0.6 via wayfarerTileConfig
- Slow retry interval derived from retryAfterSeconds * 3 via wayfarerTileConfig
- Expose OutboundBurstCapacity and BudgetRetryAfterSeconds for _Layout.cshtml
- No more hardcoded magic numbers in retryTileLayer.js

Closes #206
@stef-k stef-k merged commit 4e9a57e into main Mar 26, 2026
1 check passed
@stef-k stef-k deleted the fix/tile-budget-defaults branch March 26, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cold-cache tile loading returns gray areas instead of progressively filling tiles

1 participant