Skip to content

RFC 6763/6: ServiceInfo _is_complete() returns True even if no TXT record has been received #1815

Closed

Description

@BruceS02

According to RFC 6763/6, every DNS-SD service must have a TXT record along with the SRV:

https://datatracker.ietf.org/doc/html/rfc6763#section-6

Every DNS-SD service MUST have a TXT record in addition to its SRV
record, with the same name, even if the service has no additional
data to store and the TXT record contains no more than a single zero
byte.

In ServiceInfo, a service is considered "complete" if: bool(self.text is not None and (self._ipv4_addresses or self._ipv6_addresses)). It seems like this was initially implemented to ensure a TXT record was received, however as far as I can tell self.text is never None. In the constructor, it is defaulted to an empty string so if the service has addresses but no TXT record, the record is still considered "complete".

In my use case, this has caused an issue where zeroconf says the service is fully resolved, but is missing the TXT record.

I can submit a PR to fix this issue, but wanted to confirm that this is a real issue and not expected.

Thanks.

Activity

  1. bdraco commented on Aug 26, 2026

    @bdraco
    Member
  2. bdraco commented on Aug 26, 2026

    @bdraco
    Member

    Any fix would need to handle empty txt record vs not received record

  3. bdraco commented on Aug 26, 2026

    @bdraco
    Member

    Bot has low confidence on a fix. It will make a PR but likely a throwaway discovery one

  4. bdraco commented on Aug 26, 2026

    @bdraco
    Member

    The fix it produced looks sane in #1821. Was expecting worse

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions