Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Soft bounce counts are always zero

Open
#322 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
68/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
python
Domain
backend

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

bug real

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_reputation
  • services/email/reputation/charts.py: build_reputation_chart
  • services/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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from codingjoe/relay

All issues in codingjoe/relay

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.