Skip to content

Troubleshooting and FAQ

thenotoriousJeremy edited this page Aug 20, 2026 · 2 revisions

Troubleshooting & Frequently Asked Questions (FAQ)

Find solutions to common questions, installation issues, and runtime errors.


Camera & Scanning Issues

Error: "Camera not supported" or Camera button is disabled

  • Root Cause: Web browsers enforce strict security restrictions and disable camera access on plain http:// connections to remote IP addresses.
  • Solution:
    • Connect via HTTPS: use https://<YOUR-SERVER-IP>:3443 or access Bindarr through a reverse proxy with a valid SSL certificate (e.g. https://cards.yourdomain.com).
    • Plain http:// only permits camera access on localhost (when browsing on the host machine itself).

Browser shows "Your connection is not private" / SSL Warning

  • Root Cause: Bindarr generates a self-signed TLS certificate on first boot so that HTTPS works out of the box without requiring domain setup.
  • Solution:
    • Chrome / Edge / Firefox: Click Advanced → Proceed to [IP] (unsafe).
    • iOS Safari: Tap Show Details → Visit this website → Confirm.
    • Permanent Fix: Set up a reverse proxy (Caddy or Nginx) with a free Let's Encrypt certificate, or mount your own cert and set SSL_CERT_PATH and SSL_KEY_PATH.

Error: 503 notBuilt when scanning cards

  • Root Cause: The neural network models (cornelius.onnx, milo.onnx) or scan catalogs have not yet been downloaded.
  • Solution:
    • Run the model fetch script inside the container:
      docker exec bindarr node scripts/fetch-models.mjs --catalogs
    • Restart the container:
      docker compose restart

Scanner returns "Card not in catalog"

  • Root Cause: The card's artwork did not exceed the confidence gap floor (GAP_FLOOR = 0.10), or the card's set is not present in your built catalog.
  • Solution:
    • Check Admin → Catalogs to verify that the catalog for your game and language is fully built.
    • Ensure the card is well-lit without direct light glare or harsh shadows over the artwork.
    • Use Set Pinning in the scanner UI to narrow the comparison scope to the exact set.

Authentication & Passwords

I forgot my Admin password. How can I reset it?

  • Explanation: Bindarr does not store plaintext passwords and has no self-service password recovery mechanism by default. The DEFAULT_ADMIN_PASSWORD variable is only applied when the users table is completely empty.
  • Solution:
    • If you are the only user and have a recent JSON/CSV collection export:
      1. Stop the container: docker compose stop
      2. Remove the database: docker run --rm -v bindarr-data:/data alpine rm /data/bindarr.db*
      3. Start the container: docker compose start
      4. Set up a new admin account on first visit and re-import your collection.
    • If you have command-line SQLite access: you can delete or update the admin row in users.

Network, Proxies & CORS

Rate limiter blocks users when behind a reverse proxy

  • Root Cause: Without TRUST_PROXY=1, all incoming requests appear to originate from the reverse proxy's internal IP address (e.g. 172.18.0.1), causing all users to share a single rate-limit bucket.
  • Solution:
    • Add TRUST_PROXY=1 to your environment variables in docker-compose.yml.

Public collection share links display the wrong URL

  • Solution:
    • Set PUBLIC_BASE_URL=https://cards.yourdomain.com in your environment variables, or update the External Base URL in Admin → Settings.

Valuation & Pricing

Why do browsed cards show $0.00 price?

  • Explanation: To avoid exhausting third-party API rate limits, Bindarr only sweeps daily prices for sets from which you currently own at least one card.
  • Solution:
    • Adding a card from that set to your collection will automatically schedule and fetch market pricing for that set.

Storage & Arrangement

Drag-and-drop does not work on my phone or tablet

  • Explanation: Drag gestures on touch devices conflict with native swipe navigation.
  • Solution:
    • Tap the Arrange button in the container header to enter touch arrangement mode: tap a card to select it, then tap the destination pocket to place or swap it.

Clone this wiki locally