App Guides. how to use the apps of traveller.org
Guides / Amapas 353 Competitive Price Agent / When something goes wrong Amapas 353 Competitive Price Agent

When something goes wrong

The two usual failures — an expired Airbnb sign-in and a blocked run — and how to fix each.

The tool is built to fail loudly rather than quietly record nothing. So a red run is not a disaster — it is the tool telling you, correctly, that it could not get real prices, instead of pretending it did. There are two usual causes.

Cause 1: the Airbnb sign-in has expired

The tool visits Airbnb using a saved copy of a real browser sign-in. That sign-in lasts weeks, not forever, and when it expires the run stops with a message about the session being expired or dead, or about nearly every listing returning no price. Refreshing it is routine maintenance, not a repair.

You will need the command-line setup described on the “Rates, floors, and the season calendar” page, plus a free browser extension called Cookie-Editor (available for Chrome, Firefox, and Edge).

What you do

  1. In a normal browser on your computer, sign in to airbnb.com with the account this project uses.
  2. While on airbnb.com, open the Cookie-Editor extension and choose Export → Export as JSON. This copies the sign-in data to your clipboard.
  3. Paste the clipboard contents into a new file and save it, for example as cookies.json in the project folder. (This file holds a live sign-in — never share it, and never add it to the repository. The project is set up to ignore files with that name.)
  4. Open a terminal in the project folder and type: amapas-pricing cookies check --file cookies.json --emit then press Enter.
  5. Read what it prints. It should say the session cookies are present and show when they expire. If it warns that session cookies are missing, go back to step 1 and make sure you are signed in before exporting.
  6. Below the report it prints a single long line and tells you it is for the AIRBNB_COOKIES_JSON secret. Copy that whole line.
  7. On the project’s repository page on github.com, go to Settings → Secrets and variables → Actions, open the secret named AIRBNB_COOKIES_JSON, and paste the line in as its new value. Save.
  8. If you also run scrapes on your own computer, update the matching line in your local .env file too.
  9. Confirm the fix with a small manual run — one stay — as described on “The weekly run” page.

Cause 2: Airbnb is blocking the run’s computer

The Monday run happens on rented cloud computers, and Airbnb treats visits from that kind of computer with suspicion — even with a perfectly good sign-in. When that happens, every listing comes back “unavailable” and the run aborts. This is the expected obstacle for this setup, not a surprise: the project’s own notes say a proxy — a relay that makes the run’s traffic look like a home internet connection — is very likely required before the scheduled run returns real prices.

How to tell the two causes apart: refresh the sign-in as above, then do a one-stay manual run. If it still aborts with everything unavailable, the computer is being blocked, and the fix is a proxy, not another sign-in refresh.

Setting up a proxy means choosing and paying for a proxy service and putting its details into the project’s settings — the tool already has places for them (as repository secrets on GitHub, or lines in your local .env). Choosing a provider is a judgement call; ask whoever maintains the project to help set it up. In the meantime, a run started from a computer on an ordinary home connection — using the same commands, locally — does not face this problem.

A quick health check, any time

The doctor command is read-only and safe to run whenever you are unsure where things stand.

What you do

  1. Open a terminal in the project folder.
  2. Type: amapas-pricing doctor and press Enter.

It reports: whether the sign-in, credential, and proxy settings are present; how many listings are watched and how many prices have been recorded; whether the season calendar has gaps in the next two years; the outcome of the last few runs, including any failure message; and which seasons have floors set.

Small reassurances

  • An interrupted run is safe to restart the same day. Prices already recorded that day are skipped, so it picks up where it left off rather than revisiting everything.
  • A failed run records nothing wrong. The abort exists precisely so that an empty run is never saved as if it were real data.
  • A listing priced in another currency is handled. Prices are converted to US dollars automatically; the handful of currencies the tool cannot convert are skipped and reported, not written down wrong.
  • Secrets stay out of the project. Sign-in exports, credentials, and proxy passwords live only in your local .env file and in the repository’s secrets settings on GitHub — never in the project’s files or the spreadsheet. If a credential does leak, replacing it (rotating it) is the step that actually ends the exposure.