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

IPv6 node addresses produce an invalid request URL

Open Beginner friendly
#154 0 comments 0 reactions 0 assignees View on GitHub

@RaphaelFakhri is already working on this.

Since Oct 22, 2026.

  • #155 by @RaphaelFakhri — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
82/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python

Research direction

Start by reading Node.url() and Node.from_url(), since the issue identifies both as paths where IPv6 brackets are lost or omitted. Reproduce with the supplied URL and node dict examples, then check the client tests for node URL construction. Done when both configurations produce http://[::1]:8108 and the request no longer fails with httpx.InvalidURL.

Written by the indexing model from the issue text.

Description

A node with an IPv6 address can't be reached. Node.url() joins the host and port as {host}:{port} without enclosing an IPv6 literal in brackets, so every request fails with httpx.InvalidURL before it is sent.

Both ways of configuring a node are affected:

  • A URL string such as "http://[::1]:8108". Node.from_url takes the host from urlparse(url).hostname, which strips the brackets, so the host is stored as ::1.
  • A node dict such as {"host": "::1", "port": 8108, "protocol": "http"}.

Steps to reproduce

import typesense

client = typesense.Client({
    "api_key": "xyz",
    "nodes": ["http://[::1]:8108"],
    "num_retries": 0,
})
print(client.api_call.node_manager.nodes[0].url())
client.operations.is_healthy()

Actual behavior

http://::1:8108
httpx.InvalidURL: Invalid port: ':1:8108'

Expected behavior

The client sends requests to http://[::1]:8108.

Environment

  • typesense-python: master (8727d2b)
  • httpx 0.28.1
Dominant language
Python
Stars
247
Forks
66
Avg merge
1d 1h
Merged PRs (30d)
7

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

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 typesense/typesense-python

All issues in typesense/typesense-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.