First Feedback
Target reader: developers verifying the first player-initiated feedback payload from Godot.
The SDK freezes one submit action. When local queueing is enabled, it atomically saves the payload before sending, checkpoints report and attachment receipts separately, and recovers unconfirmed requests with the same content and idempotency key. feedback_payload_ready remains a preparation signal; feedback_delivery_changed reports confirmed or unconfirmed delivery outcomes. See reliable local delivery for partial results, project isolation and the seven-day local limit.
This diagnostic records only preparation status and a field count. feedback_payload_ready does not confirm delivery. Never print complete payloads, queued JSON, player text, contact details, logs or credentials. Submission consent does not authorize copying player data into diagnostic logs.
Minimal example
func _ready() -> void:
EchoNebulaFeedback.feedback_payload_ready.connect(func(payload: Dictionary) -> void:
print("feedback_payload_ready; field_count=", payload.size())
)
EchoNebulaFeedback.configure({
"project_key": "enb_pk_demo_local_replace_me",
"public_api_base_url": "http://localhost:4000",
"environment": "local",
"release": "0.1.0",
"build_id": "dev-build-001",
"locale": "auto"
})
func _on_feedback_pressed() -> void:
EchoNebulaFeedback.open_feedback_panel({ "trigger_source": "button", "category": "bug" })
The player must enter a description and confirm the privacy checkbox. Screenshot and recent log checkboxes start unchecked.
Confirm and process in the correct project
In Console, refresh the same project's Overview until it reports actual feedback received. Open the project feedback list, filter it, and open the report. The detail page keeps the verified project context and provides a return to that filtered list. Confirm the description, consent snapshot and the attachments actually present.
Owners/admins can assign eligible members. Developers/QA can claim or release according to existing permissions. Save a status or priority, add a comment, then refresh to verify the persisted result. The statuses are new / reviewing / resolved / ignored / archived; archived is not deletion. Viewers remain read-only and do not receive player contact details.
If the report is received but an attachment is absent, check the SDK delivery result and reliable local delivery. Do not equate consent with an attachment receipt or recreate the report just to retry an attachment.
Common mistakes
- Do not consider an empty description a valid feedback report.
- Avoid adding
recent_logswhenconsents.recent_logs_uploadisfalse; the server will drop inline logs and recordrecent_logs_dropped: trueif they are sent anyway. - Do not attach a screenshot after the player leaves the screenshot checkbox unchecked.
Next step
Choose supported Trigger points.