Skip to content

[bug] audience-segments: Segment.member_count field always 0 — never updated when members are added or removed #721

Description

@gboigwe

Summary

The Segment struct has a member_count: u64 field, but it is initialized to 0 in create_segment and never modified by add_member or remove_member. The actual membership count is tracked separately in DataKey::MemberCount(segment_id) persistent storage. Anyone calling get_segment sees a segment with member_count = 0 regardless of how many members have been added.

Location

contracts/audience-segments/src/lib.rs

// In create_segment:
let segment = Segment {
    member_count: 0, // ❌ never updated after creation
    ...
};

// In add_member: only MemberCount(segment_id) is updated, not segment.member_count

Fix

Either remove member_count from the Segment struct (use get_member_count for the authoritative value), or update segment.member_count in add_member and remove_member when the segment record is modified.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions