{{ message }}
Repository navigation
Conversation
Adds an experimental remote-API test (messageFieldArrayShapeProbe) to slacklists_Test that creates a list with a message-type column, sets the field with a real message permalink, then reads the item back and observes the actual response shape of the `message` field. It captures the raw items.info JSON to assert whether `message` is a JSON array or object, and separately probes whether the typed (production Gson) deserialization throws on that real shape. Additive, test-only; no SDK source changes. Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
Emit a stdout marker with the observed message-field shape and targets the record.fields[...] message key specifically. Verified against the live API: the message field is returned as a JSON array and the production Gson path throws (Expected BEGIN_OBJECT but was BEGIN_ARRAY). Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
Member
Author
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## api #1644 +/- ##
============================================
- Coverage 72.66% 72.61% -0.06%
+ Complexity 4554 4533 -21
============================================
Files 484 483 -1
Lines 14493 14460 -33
Branches 1521 1520 -1
============================================
- Hits 10532 10500 -32
Misses 3065 3065
+ Partials 896 895 -1 Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
This was referenced Oct 8, 2026
bkyryliuk
added a commit
to bkyryliuk/java-slack-sdk
that referenced
this pull request
Oct 8, 2026
slackapi#1590 added GsonListRecordFieldFactory to handle array-shaped list_record field messages, but only under slack-api-model tests. The production GsonFactory never registered it, so conversations.replies still fails with Expected BEGIN_OBJECT but was BEGIN_ARRAY on Slack List unfurls (slackapi#1587, reproduced in slackapi#1644). Move the factory to slack-api-model main next to the other model adapters and register it in GsonFactory.registerTypeAdapters. Update the json-logs API samples so list record field messages use the array shape the Web API returns. The existing MockSlackApi-based tests (for example ConversationsTest) now parse that shape through the production GsonFactory.
bkyryliuk
added a commit
to bkyryliuk/java-slack-sdk
that referenced
this pull request
Oct 8, 2026
list_record field messages, but only under slack-api-model tests. The production GsonFactory never registered it, so conversations.replies still fails with Expected BEGIN_OBJECT but was BEGIN_ARRAY on Slack List unfurls (slackapi#1587, reproduced in slackapi#1644). Move the factory to slack-api-model main next to the other model adapters and register it in GsonFactory.registerTypeAdapters. Update the json-logs API samples so list record field messages use the array shape the Web API returns. The existing MockSlackApi-based tests (for example ConversationsTest) now parse that shape through the production GsonFactory.
bkyryliuk
added a commit
to bkyryliuk/java-slack-sdk
that referenced
this pull request
Oct 8, 2026
slackapi#1590 added GsonListRecordFieldFactory to handle array-shaped list_record field messages, but only under slack-api-model tests. The production GsonFactory never registered it, so conversations.replies still fails with Expected BEGIN_OBJECT but was BEGIN_ARRAY on Slack List unfurls (slackapi#1587, slackapi#1653, reproduced in slackapi#1644). Move the factory to slack-api-model main next to the other model adapters and register it in GsonFactory.registerTypeAdapters.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Warning
Experimental / not for merge. This is a throwaway probe used to observe the real production response shape of the Slack Lists
messagefield before committing to a fix for #1587. Expected to be reverted.This pull request adds an experimental remote-API test that empirically observes how the Slack API returns a list item's
messagefield.ListRecord.Field.messagecan come back as an array of message objects, which the production Gson path fails to deserialize (JsonSyntaxException: Expected BEGIN_OBJECT but was BEGIN_ARRAY). The public docs forslackLists.items.createshow only the request shape (an array of permalink URL strings) and give no response example, so the response shape is unverified in public.messageFieldArrayShapeProbetoslacklists_Test: creates a list with amessage-type column, sets the field with a real message permalink, reads the item back, and:slackLists.items.infoJSON and asserts whether themessagevalue is a JSON array ([) or object ({);Category
Testing
Run only the Slack Lists remote test against a workspace with a bot token that has
lists:read/lists:writeand can post to the test channel:Inspect the
[probe]log lines — theSUMMARYline reportsmessageIsArray,messageIsObject, andtypedDeserializationThrewfor the live response.Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you agree to those rules.