Setup
Discord webhooks
Post the accounts you generate and the tasks that fail to your own Discord channels.
Add and test a webhook#
Open Settings → General → Notifications
There are three rows, each with its own Test button: Genned accounts webhook, Monitor webhook and Fail webhook.Paste a webhook URL into a field
Use Genned accounts webhook for the accounts you generate and Fail webhook for tasks that fail. Gen tasks never post to Monitor webhook. Its only post is one Pokémon Center queue alert per app start, described below. Leave a field empty to turn that feed off.Click Test
AETHER saves what is in that field first, so the test uses the URL you typed. It then posts a test embed with placeholder values. The emailtest@example.comand passwordnot-a-real-passwordshow as blurred spoilers.
The fail row's Test posts one embed, titled Task failures webhook test. The genned row's Test posts Genned accounts webhook test, and also sends a test to every other webhook you have saved. If a fail webhook is saved, your fail channel gets a test post too.
All three rows share one result line under the fields. Each test clears it, so you only see the last result. While the genned test runs, its button reads Testing…. Afterwards it reads Test Webhooks.
| Result | Genned accounts row | Fail row |
|---|---|---|
| Posted | Webhook sent ✓ | fail sent ✓ |
| Discord rejected it | Webhook failed — Discord returned 404 | fail failed — Discord returned 401 |
The URL has no /api/webhooks/ | Webhook failed — not a Discord webhook URL | fail failed — not a Discord webhook URL |
| The field is empty | No webhook set | fail webhook not set |
| The request failed | Test failed — <message> | Test failed — <message> |
The codes 404 and 401 are examples. You see whatever code Discord sent back.
Choose a channel for each feed#
Post the two feeds to separate channels. If failures post in the same channel as accounts, the accounts you generate get buried during a run. Put the genned feed where you will see it, and the fail feed in a channel you read afterwards.
The two feeds can go to different servers. The genned feed carries credentials, so post it to a channel only you can see.
What each webhook posts#
| Webhook | Posts when | Embed contains |
|---|---|---|
| Genned accounts | Once for each account you generate. | The title Account Generated, then the site and region, email, password, the username or phone if the retailer gave one, the proxy and the export group. |
| Fail | A task starts and its proxy list does not answer, or a task stalls. See below. | The title Failure and the line ❌ Task failed., then kind, reason, mode, retailer, group and task, plus the SKU if the task had one. |
| Monitor | Once per app start, the first time AETHER detects a Pokémon Center queue. A site security check can set it off too. | The title Pokémon Center queue is UP, then the state it saw, the page size and the connection used. |
For the export group named in each genned embed, see Accounts.
Every install also reports each account it generates to AETHER's public genned-accounts channel. That report carries your licence key, the retailer and the region. It carries no email, password or proxy. It is sent through the licence server and does not use your webhook fields. You cannot point it anywhere else.
What counts as a failure#
The fail webhook posts in two cases only:
- A task starts and its proxy list does not answer. Kind and reason both read
dead-proxy. - A task shows no output and no status change for an hour, so AETHER stops it as stalled. Kind and reason both read
stalled.
AETHER may retry a stalled task on its own, so a stalled post does not always mean the task ended. Mode shows the task's mode in capitals, such as GEN.
Other failures do not post. A task that ends as GEN FAILED stays out of the channel. Nothing posts when you stop a task or when a task succeeds.
The embed shows the stop code, not the label on the task list. For those labels, see Task statuses.
Rules and limits#
- A URL must contain
/api/webhooks/. During a run, any other URL is skipped with no post and no error. Test catches it and showsnot a Discord webhook URL. If a feed is quiet, check this first. - Credentials in the genned embed are posted as Discord spoilers. They stay blurred until someone clicks them.
- Each account posts once. A restart does not post it again.
- Discord limits one webhook to about five posts every two seconds, and a batch can hit this easily. On the genned feed, AETHER waits the delay Discord asks for, up to 15 seconds, and retries once.
- If Discord rejects a genned post, AETHER adds a line to that task ending
this account was NOT relayed. This covers any error code, such as 404 for a deleted webhook, and a rate limit that fails again after the retry. That way you can tell a broken feed from a quiet one. A network error does not add this line. - The fail feed posts once, with no retry. If Discord rejects it, nothing is logged.