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

[W-4] Money consumed without session granted — no refund path

Open
#803 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
20/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
go
Domain
backend, payments

Research direction

Start by confirming whether the bug still reproduces on current upstream main, since the issue says this was not verified during migration. Then read merchant.go around lines 486-494 (the 30s timeout branch, where the Receive goroutine keeps running) and 538-552 (the grant-failure path), and check the Lightning MintTokens-then-grant flow. Done means tokens are consumed only after a session is granted, with a refund path for the other cases, and a test covers each of the three failure paths.

Written by the indexing model from the issue text.

Description

Migrated from Amperstrand/tollgate-module-basic-go#73 as part of the fork retirement — OpenTollGate/tollgate-module-basic-go is the single source of truth; the fork issue carries the original discussion and any lab evidence. Retirement plan: #758.]


MEDIUM-HIGH: Partial-failure accounting bug where money settles before service is decided. Three concrete paths:

  1. 30s timeout leaves the non-cancellable Receive goroutine running; late swap success = token consumed, no session, retry hits "already spent", no refund path.
  2. Gate-open failure after successful swap (including the shared 00:00:00:00:00:00 fallback-MAC bucket where ndsctl auth fails for a non-existent client) = same client-side loss.
  3. Lightning: MintTokens ok + grant fail = funds parked, monitor retries forever.

File references: merchant.go:486-494 (timeout branch), :538-552 (grant-failure).

Fix: Implement grant-or-refund accounting to ensure tokens are only consumed when a session is successfully granted.

Evidence: /home/ubuntu/src/tollgate_audit_report_2026-08-26.md §7, line 146


Migrated 2026-10-09. Applicability to current upstream main (4614ac2, post-rc1) was not re-verified during migration — confirming whether the finding still reproduces upstream is this issue's first task.

Dominant language
Go
Stars
12
Forks
14
Avg merge
1d 5h
Merged PRs (30d)
246

Getting set up

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 OpenTollGate/tollgate-module-basic-go

All issues in OpenTollGate/tollgate-module-basic-go

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.