Skip to content

Missing documentation and clarification of lurkers in public stages #3152

@MinnDevelopment

Description

@MinnDevelopment

The documentation currently does not properly explain how voice states for lurkers in public stage instances behave or how they should be handled.

Through testing I found out that:

  • You receive a VOICE_STATE_UPDATE with a member that has joined_at as null (for joining/leaving/raising hand/etc.)
  • You DO NOT receive a GUILD_MEMBER_ADD or GUILD_MEMBER_REMOVE

This means documentation needs to be adjusted in a few ways:

  • The joined_at in the Guild Member Object must be marked as nullable
  • It has to be explicitly explained how to treat these lurker members (since you don't receive a GUILD_MEMBER_REMOVE you have to check in the voice state update)

I also noticed a few issues that I've encountered:

  • The stage discovery doesn't work for my test stages at all, even though its set to PUBLIC and discovery_disabled: false.
  • Sometimes you receive voice states without any member attached
  • I could not get stage channels working in a browser at all, no errors either. It just didn't join the stage channel, instead it scrolled up(?)

Example voice state without member:

{
  "request_to_speak_timestamp": null,
  "self_deaf": false,
  "user_id": "852064306585010236",
  "guild_id": "694920632940625951",
  "deaf": false,
  "session_id": "39d2ca5af01e3f26149118967c86717e",
  "mute": false,
  "suppress": true,
  "self_video": false,
  "self_mute": false,
  "channel_id": null
}

Example voice state with joined_at being null:

{
  "request_to_speak_timestamp":null,
  "self_deaf":false,
  "user_id":"856225246402445343",
  "member": {
    "joined_at":null,
    "roles":[],
    "deaf":false,
    "mute":false,
    "user":{"id":"856225246402445343","avatar":null,"username":"Minn Test","discriminator":"6274"}
  },
  "guild_id":"125227483518861312",
  "deaf":false,
  "session_id":"1c09ff30f5fe30f703f4cbadaa78d064",
  "mute":false,
  "suppress":true,
  "self_video":false,
  "self_mute":true,
  "channel_id":"831141260990742579"
}

Metadata

Metadata

Assignees

No one assigned

    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