-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
Almost always the reverse proxy, not the app. Many Traefik or nginx setups
send a global Permissions-Policy: camera=() header, which forbids camera
access for every site behind them. The browser then refuses silently — no
permission prompt, and nothing you can fix in Android's settings.
Allow the camera for your own origin, e.g.
Permissions-Policy: camera=(self)
and reload. If Chrome has already remembered a refusal, clear the site's settings: address bar → the icon left of the URL → Site settings → Reset permissions.
That warning means Chrome did not install the app as a proper PWA but as a
legacy wrapper — and such a wrapper cannot get camera access at all. It happens
when the service worker is missing or fails to register. Reinstall from the home
screen after a full reload; if it persists, check that
/service-worker.js is reachable over HTTPS.
- On iPhone the silent switch can suppress it. Vibration is no help either, iOS ignores it entirely.
- Browsers only allow sound after a user interaction — the very first beep of a session may be swallowed if you have not touched the screen yet.
Uploads larger than the configured limit are rejected. The container sets
BODY_SIZE_LIMIT=15M; a phone photo of 2–3 MB fits comfortably. If you run the
app without that variable, adapter-node's default of 512 KB applies and every
photo fails. Pictures themselves are capped at 10 MB.
JPEG, PNG, GIF and WebP. The type is determined from the file's actual content, not from what the browser claims. SVG is not accepted — it is an active document that would run in your browser when opened directly.
If your password contains # or $ and you set it through .env or
docker-compose.yml, check the quoting. An unquoted # starts a comment and
the password is silently truncated at that point.
If you have tried several times, wait: after five failures the username is locked for a minute, doubling up to 15 minutes. See Users.
They should not — the suggestions are reconciled against your basket and your undelivered orders. If the page shows a warning that the basket or the open orders could not be read, Picnic was unreachable at that moment and the list is not fully reconciled. Reload once Picnic responds again.
Picnic accepts unknown product IDs without complaining. Proviant checks afterwards and names what did not arrive. Fix it by setting the item's Picnic link again — see Ordering.
No, and it will not. The app fills the basket; checkout stays in the Picnic app.
No. Picnic's search does not accept EANs and its product details contain none. Barcodes resolve through Open Food Facts; the Picnic link is made by name or by entering the product ID.
Check Account → Version: it shows the build time and commit of the running instance. That is faster than guessing, and it has explained more than one "bug".
In the ./data volume: the SQLite database, the pictures and the Picnic auth
key. Back that directory up and you have backed up everything. Migrations run
automatically on start, so restoring an older backup into a newer version works.
Interface, messages and this wiki are English; the changelog is not, because keeping three translated copies in step would be unrealistic. The account page marks it as German-only when your interface is set to another language.
Start
Everyday use
Cooking
Picnic
Administration