Skip to content

SlackListsItem FieldMessage.message type does not match API response shape #2598

@hello-ashleyintech

Description

@hello-ashleyintech

Package

@slack/types

SDK Version

@slack/types 2.21.1

Node.js Version

v24.12.0

Operating System

No response

Steps to Reproduce

SlackListsItemFieldMessage in packages/web-api/src/types/request/slackLists.ts defines:

export interface SlackListsItemFieldMessage {
  column_id: string;
  message: string[];
}

The Slack API can return the message field as either:

  • A single message object: "message": {"text":"hello", "ts": "123.456"}
  • An array of message objects: "message":[{"text": "a"}, {"text":"b"}]

The current typing is inaccurate in two ways:

  1. It assumes message is always an array, but the API may return a single object
  2. It types elements as string when they areactually message objects

See java-slack-sdk#1587 for the same API inconsistency on the Java side.

Suggested fix

interface SlackListsItemMessage {
    text?: string;
    ts?: string;
    user?: string;
    team?: string;
    type?: string;
}

export interface SlackListsItemFieldMessage {
    column_id: string;
    message: SlackListsItemMessage | SlackListsItemMessage[];
  }


export interface SlackListsItemFieldMessage {
    column_id: string;
    message: SlackListsItemMessage | SlackListsItemMessage[];
}

This types it as a union so consumers handle both shapes.

Impact

No runtime crash (JavaScript is untyped at runtime), but developers relying on the type will write incorrect code, like calling .map() on a non-array or treating objects as strings.

References

Expected Result

N/A

Actual Result

N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugM-T: A confirmed bug report. Issues are confirmed when the reproduction steps are documentedgood first issueuntriaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions