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

Return net.ErrClosed from Read methods when connection is closed by us

Open
#447 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
go
Domain
networking

Research direction

Start by tracing the Read, CloseRead, and Close calls shown in the report, then inspect how a locally closed connection is reported to callers. Confirm the desired behavior from the issue title: Read methods should return net.ErrClosed when this library closes the connection, with coverage for the demonstrated reader and close sequence.

Written by the indexing model from the issue text.

Description

Whenever I close the connection I get this error and the server doesn't respond. Can you please help me here

My reader function;

func WsReader(log *logger.LoggerEvent, requestCtx context.Context, wsConn *_websocket.Conn, requestId uuid.UUID, userId int32) {
	for {
		_, buff, err := wsConn.Read(requestCtx)
		if err != nil {
			if err != io.EOF {
				log.Errorf(`Failed to read the data : ERROR : %s : CODE : %s`, err, _websocket.CloseStatus(err))
			}
			break
		}

		if len(buff) == 0 {
			break
		}

		data := eventSchemaHandler.GetRootAsEventWrapper(buff, 0)
		log.Infof("Event received : %s : USER_ID : %d", data.Event(), userId)
		unionTable := new(flatbuffers.Table)
		data.Payload(unionTable)
		event.SerializeEvents(log, wsConn, unionTable, requestId, string(data.Event()), string(data.ClubId()))
	}
}

My Connection Close function:

func CloseSocketConnection(wsConn *_websocket.Conn, clubId string, statusCode _websocket.StatusCode, msg string) {
	wsConn.CloseRead(context.Background())
	wsConn.Close(statusCode, msg)
} 
Dominant language
Go
Stars
5.5k
Forks
377
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

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 coder/websocket

All issues in coder/websocket

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.