Soft bounce counts are always zero
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
Research direction
Start in services/email/reputation/evaluation.py at compute_org_reputation and services/email/reputation/charts.py at build_reputation_chart, then trace deliver_via_mx_hosts, refusal_details, and record_bounce in services/email/msa/tasks.py. Confirm which transmission rows represent 4xx refusals and how the chart consumes them. Done means the soft-bounce display accurately reflects the chosen behavior, or the nonfunctional series is removed.
Written by the indexing model from the issue text.
Description
The soft bounce count is always zero. The reputation chart therefore shows a flat line, even when a domain collects many 4xx refusals.
compute_org_reputation and build_reputation_chart classify soft bounces as transmission rows with status=BOUNCED and a code below 500:
soft_bounces = transmissions.filter(code__lt_500).count()
A 4xx refusal never sets BOUNCED. The delivery walk records a temporary refusal as Transmission.Status.FAILED, with the code and the reason. Only a permanent rejection calls record_bounce, and that call writes BOUNCED. The soft bounce series is therefore always zero, by construction. The "Soft bounces" line in the reputation chart never moves, however many 4xx refusals a domain collects.
Evidence:
services/email/reputation/evaluation.py:compute_org_reputationservices/email/reputation/charts.py:build_reputation_chartservices/email/msa/tasks.py:deliver_via_mx_hosts,refusal_details,record_bounce
Two directions are possible: read 4xx refusals from the rows that actually record them, or remove the soft bounce series as decoration. Soft bounces are display-only today. No threshold uses them.
Found during the sandbox-credentials change (#259). This fault is older than that change.
- Dominant language
- Python
- Stars
- 4
- Forks
- 0
- Avg merge
- 2h 40m
- Merged PRs (30d)
- 163
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from codingjoe/relay
-
enhancement real sec
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
codingjoe/relay#410 · 1 comment ·
Maintainers usually reply within 1 day
-
bug side quest
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day
-
bug side quest
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
bug side quest
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
side quest test
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
Similar issues
-
request-theme
Difficulty 1/5 Under an hour Newbie friendliness 66/100
LizardByte/ThemerrDB#9575 ·
Maintainers usually reply within 1 day
-
author-page correction
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
acl-org/acl-anthology#10599 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
zilliztech/memsearch#818 ·
Maintainers usually reply within 1 day
-
[FAQ] Commit ID for ProjectsPossibly taken @github-actions claimed this today. Openfaq-proposal
Difficulty 1/5 Under an hour Newbie friendliness 84/100
DataTalksClub/faq#503 · 1 comment ·
Maintainers usually reply within 2 days
-
README.zh-CN/ja/es still hard-code 501 test counts after README.md went count-freePossibly taken @Aaqibhafeezkhan claimed this today. Openbeginner documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
BistaDinesh03/critique#164 · 1 comment ·
Maintainers usually reply within 1 day