Files uploaded to Public Group Channel are not available to non-participants

[Problem/Question]
// Detailed description of issue.

We are using public group channels. The channel is created by the backend using the Platform API with “is_public” : True

On the frontend we are using the Javascript SDK v3

Frontend users are issued a session token by the backend, which is then used to initialise the Javascript SDK v3.

For a user who is not yet a participant on the group channel. This user can get a listing of messages, and get get the content of text messages.

However, this user who is not yet a participant on the public group channel cannot retrieve FILE message thumbnails or attachment.

If using the “single message” API to try get one FILE message on the public group channel, the error returned is:

“SendBirdException: Not authorized. User hasn’t joined channel.”.

Is this the intended behaviour, that message text can be retrieved from a public channel by non-participants, but files cannot be retrieved?

The files are uploaded by participants on the channel using the Javascript SDK v3.

We also have an email integration in the backend, and the backend can also upload files into a channel using the Platform API.


// If problem, please fill out the below. If question, please delete.
[SDK Version]
// What version of the SDK are you using?
Javascript SDK v3
Platform API v3

[Reproduction Steps]
// Please provide reproduction steps and, if possible, code snippets.

  • Create a Public Group Channel using the Platform API
  • Using the JS SDK v3 to post text messages and image files into the channel (specify creation of thumbnails as well), by a user who is a participant on the channel.
  • With a user session which is not a member of the channel, list the message contents of the group channel using the JS SDK v3.
  • Text messages are returned. Pre-signed URLs for file messages are not returned.
  • If trying to use single message retrieve for a file message, the exception Not authorized. User hasn’t joined channel. is return (but channel is public)

[Frequency]
// How frequently is this issue occurring?

Consistent. Always.

[Current impact]
// How is this currently impacting your implementation?

We have our own visibility matrix which runs on top, and will present channel lists and channel contents to users who are not (yet) participants on the channel. This is sort of only “half working” now because all the image links are broken when the user isn’t a member on the channel