Troubleshooting¶
Common issues and their solutions.
Thumbnail Issues¶
Thumbnails Not Generating¶
Symptoms: Broken image icons, 500 errors on thumbnail requests
Solutions:
-
Check
.meta/thumbnails/directory exists and is writable: -
Verify Sharp is installed:
-
Rebuild Sharp for your platform:
-
Check server logs for specific errors
Thumbnails Not Updating¶
Symptoms: Old thumbnails still showing after replacing photos
Solution: Delete cached thumbnails:
Thumbnails regenerate automatically on next request.
Wrong Orientation¶
Symptoms: Photos display rotated incorrectly
Solutions:
- Verify the original has EXIF orientation data
- Delete the cached thumbnail to regenerate:
- Ensure Sharp's
.rotate()is called without parameters
Password Protection Issues¶
Password Not Working¶
Symptoms: Correct password rejected, can't access album
Solutions:
- Check the
album-accesscookie in browser DevTools: - Open DevTools → Application → Cookies
- Look for
album-accesscookie -
Delete it and try again
-
Verify password in
index.md(case-sensitive) -
Check for rate limiting (wait 15 minutes or restart server)
"Too Many Attempts" Error¶
Symptoms: Rate limited after failed attempts
Solutions:
- Wait 15 minutes for cooldown
- Or restart the server (rate limit is in-memory)
- Adjust limits in
src/lib/rate-limit.ts:
Album Content Visible Without Password¶
Symptoms: Protected album shows photos without authentication
Solutions:
-
Verify
prerender = falsein[...path].astro: -
Clear browser cache and cookies
-
Ensure access verification runs before content fetch
Download Album Failing on Protected Content¶
Symptoms: 401 errors when downloading protected albums
Solution: Ensure X-Album-Token header is included in the request. Check browser DevTools Network tab for the download request.
Display Issues¶
EXIF Not Showing¶
Symptoms: Info overlay is empty or shows "No EXIF data"
Causes:
- Photo lacks EXIF data (stripped during editing)
- Unsupported EXIF format
Solutions:
- Check console for errors from exifr library
- Verify EXIF exists with:
exiftool photo.jpg - Re-export photo with EXIF preserved
EXIF Not Visible in Fullscreen¶
Symptoms: EXIF overlay hidden behind browser UI in fullscreen
Solution: This is handled automatically. The overlay should appear inside PhotoSwipe's container. If not, check for CSS conflicts.
Navigation Jumping¶
Symptoms: Arrow key navigation skips photos unexpectedly
Solution: Position-based navigation uses 80px tolerance for row detection. Adjust in PhotoGrid's getNextIndex() function if needed.
Sort Not Persisting¶
Symptoms: Sort preference resets on page refresh
Solution: Check localStorage for photoGallery_sortOption key:
Page Issues¶
/home Page Not Rendering¶
Symptoms: Home page shows error or blank
Solution: Ensure prerender is set correctly:
Album Not Appearing¶
Symptoms: Album exists but doesn't show in listings
Solutions:
- Verify
index.mdexists in the album folder - Check for YAML syntax errors in frontmatter
- Ensure
hidden: false(or remove the field) - Restart the dev server
Broken Thumbnails / "Album Not Found"¶
Symptoms: Thumbnails fail to load, console shows path errors
Cause: Dots in folder names after numbers
Example: - 16.album-name → Astro normalizes to 16album-name - File system lookup fails
Solution: Use dashes instead of dots: - 16-album-name
Server Issues¶
Port Already in Use¶
Symptoms: "Port 4321 is already in use" error
Solutions:
- Dev server tries 4321, 4322, 4323 automatically
- Find and kill the process:
- Or specify a different port:
Server Won't Start¶
Symptoms: Immediate crash on startup
Solutions:
-
Check Node.js version:
-
Verify build completed:
-
Check for missing dependencies:
Styling Issues¶
Fonts Not Loading¶
Symptoms: Fallback fonts displayed instead of Google Fonts
Solutions:
- Check Network tab for Google Fonts requests
- Verify preconnect hints in Layout.astro:
- Check for ad blockers blocking fonts
Focus Styles Not Visible¶
Symptoms: No visible focus indicator on keyboard navigation
Solutions:
- Ensure
:focus-visibleisn't overridden - Check for
outline: noneon elements - Verify
--color-focusCSS variable exists
Slider Not Auto-playing¶
Symptoms: Hero slider doesn't advance automatically
Cause: User has prefers-reduced-motion: reduce enabled
Solution: This is intentional behavior respecting accessibility preferences. Slider can still be navigated manually.
Development Issues¶
Content Collection Errors¶
Symptoms: Build fails with content collection validation errors
Solutions:
- Check frontmatter YAML syntax in
index.mdfiles - Verify required fields are present (at minimum:
title) - Remove invalid or extra fields
TypeScript Errors¶
Symptoms: Type errors during build
Solutions:
- Run type check:
- Update Astro and dependencies:
Getting Help¶
If you're still stuck:
- Check the GitHub Issues
- Search for similar problems
- Open a new issue with:
- Node.js version
- Browser and version
- Steps to reproduce
- Error messages from console
Related¶
- Installation - Setup guide
- Configuration - All options
- Architecture - Technical details