Feedback script saying you've reached your feedback limit for all players

--
--
--
local collection_service			= game:GetService( "CollectionService" )
local proximity_prompt_service		= game:GetService( "ProximityPromptService" )
local social_service				= game:GetService( "SocialService" )

local TAG_NAME						= "ProximityPromptFeedback"


--
--
--
proximity_prompt_service.PromptTriggered:Connect( function( _prompt, _player )
	if ( not collection_service:HasTag( _prompt, TAG_NAME ) ) then return end

	--print( "Feedback prompt triggered:", _prompt:GetFullName(), "by", _player.Name )

	local _success, _error = pcall( function( )
		social_service:PromptFeedbackSubmissionAsync( )
	end )

	if ( not _success ) then
		warn( "Failed to open feedback dialog:", _error )
	end
end )

I wrote this so users can submit feedback on the game. However the user gets the following error:

I thought it may just have been me being the owner / author of the game. But ever usery gets this.

The game is set to limited to members of the group for now.

1 Like

Nothing in the thread yet, so worth saying first: the reason this is hard to debug is that your pcall cannot see the failure you are looking at.

Check the signature. SocialService:PromptFeedbackSubmissionAsync(options: Dictionary?) takes no player parameter. It prompts whoever’s client it runs on, which tells you two things: it is a client call, and the “limit reached” screen you screenshotted is drawn by the CoreScripts rather than returned to you.

Look at what SocialService exposes around it:

  • ShowPromptFeedbackSubmission (Event, RobloxScriptSecurity)
  • ShowPromptFeedbackUnavailable (Event, RobloxScriptSecurity)
  • SignalFeedbackSubmissionCompleted (Function, RobloxScriptSecurity)
  • SignalFeedbackSubmissionPermissionDenied (Function, RobloxScriptSecurity)

You cannot call or connect to any of those. They are the CoreScript’s half of the conversation. Reading the surface, your call raises the Show event, the CoreGui decides whether to draw the form or the unavailable screen, and completion or permission-denied is signalled back through the engine, not back through your thread. So _success comes back true, your warn never fires, and the only thing that has ever told you something is wrong is a screenshot. That matches what you are describing.

Two concrete things to change.

Pass the options table. You are calling it bare:

social_service:PromptFeedbackSubmissionAsync( )

Enum.FeedbackType has exactly two values, Feedback and PlayerSupport, and the documented example passes one explicitly:

social_service:PromptFeedbackSubmissionAsync( { FeedbackType = Enum.FeedbackType.PlayerSupport } )

Try both before assuming the API is broken. They are two different flows and right now you are not choosing either one.

Confirm which side this is running on. ProximityPromptService.PromptTriggered fires on the server as well as on the client, so this handler looks alive in both places. If it is in a Script, the call has no client to target and _player is doing nothing for you. One line will tell you:

print( "feedback handler on client:", game:GetService( "RunService" ):IsClient( ) )

If that prints false, move the handler into a LocalScript and gate it on the local player:

local players = game:GetService( "Players" )

proximity_prompt_service.PromptTriggered:Connect( function( _prompt, _player )
	if ( _player ~= players.LocalPlayer ) then return end
	if ( not collection_service:HasTag( _prompt, TAG_NAME ) ) then return end

	local _success, _error = pcall( function( )
		social_service:PromptFeedbackSubmissionAsync( { FeedbackType = Enum.FeedbackType.PlayerSupport } )
	end )

	if ( not _success ) then
		warn( "Failed to open feedback dialog:", _error )
	end
end )

Last thing, and I would test this one early because it is cheap. You mention the place is restricted to group members. There is a distinct SignalFeedbackSubmissionPermissionDenied path in that API, separate from any limit. The same “you have reached your feedback limit” screen appearing for every player, including accounts that have never submitted feedback once, reads a lot more like a blanket unavailable or denied state than like a per-user counter that maxed out for everyone at the same time. Flip a test build to public for five minutes and see whether the prompt behaves differently. If it does, this is an access problem and not a limit.

1 Like

It is a client script in StarterPlayerScripts. It does run on the client.

The Options Dictionary is “optional” and defaults to Feedback if left blank. This was set up as a generalized feedback system. Although the PlayerSupport one could be a secondary option I could add if the ProximityPrompt has an attribute.

Unchanged, testing with server / clients I do get a feedback can’t be completed bit for account under 13 years old if the id is < 0 which is different than mine.

My girlfriend has high level permissions in the game and has the same feedback limit popup when we test that I have.

It seems the owner gets the feedback limit reached by default, which I saw in the API, but I didn’t think an admin of the group would also have that same limit and there really should be a way to test it for owners and admins.

Your test results line up exactly with the eligibility list in the documentation — it’s in the method description for PromptFeedbackSubmissionAsync on the SocialService reference. A player is ineligible for the Feedback flow if they’re the experience owner (the docs’ wording: “developers cannot submit feedback for their own experiences”), rate limited — feedback is once per day per experience — or under the age requirement.

You’d already found the owner rule, so the two details on that page that explain the rest of what you’re seeing:

  1. “If the player is ineligible, the prompt displays a message indicating that feedback or support is unavailable and the method returns without error.” The different screens you’re getting — limit-reached for you and your girlfriend, can’t-be-completed for the under-13 account — are ineligibility buckets with different canned copy, not counters. And “returns without error” is why every one of these paths comes back as success through your pcall.

  2. From the notes on the same page: “This service does not work during playtesting in Roblox Studio. To test the feedback prompt, you must publish the experience and play it in the Roblox application.” If any of your server/client testing was in Studio’s Test tab, those runs weren’t exercising the real flow at all.

The docs only say “experience owner” — nothing about group ranks — so your girlfriend hitting the same screen is a genuinely useful data point that high-level group permissions get treated as owner here. I haven’t seen that written down anywhere.

For a clean test: a 13+ account with no permissions on the experience, in the published game. Because of the once-per-day rule that account gives you exactly one real submission a day — its second attempt will show the same limit screen, that time for the legitimate reason. And since there’s no owner/admin preview path in the docs at all, “let developers test the feedback form” would be a fair feature request.

1 Like

Other users are getting the same error. It is set up as group members can play, but not public. It should allow them to post feedback but it does not.

I’ll wait for a human response.