Skip to content

[BUG]: Fix inconsistent /generate_gform response contract causing undefined form URL in web/extension clients #616

@Ashvin-KS

Description

@Ashvin-KS

Bug Description

The /generate_gform endpoint currently returns a raw JSON response containing only responderUri, while web and extension clients expect a structured object with form_link.
This causes inconsistent handling and can result in undefined URL opening behavior.

Current Behavior

  • Backend returns non-uniform response shape.
  • Frontend/extension tries to read result.form_link.
  • In some flows, URL resolution is inconsistent.

Expected Behavior

  • Backend should return a consistent JSON contract:
    • form_link
    • edit_link
  • Clients should open form_link reliably.
  • Invalid payloads should return clear 400 errors.

Proposed Fix

  • Normalize backend response schema in /generate_gform.
  • Add input validation for qa_pairs type.
  • Remove server-side browser tab opening side effect.
  • Add backward-compatible URL handling in clients for legacy and new response formats.

Steps to Reproduce

  1. Generate questions in EduAid web or extension.
  2. Click "Generate Google Form".
  3. Observe response parsing mismatch (backend vs consumer expectation).

Logs and Screenshots

No response

Environment Details

  • Backend: Flask
  • Clients: EduAid Web + Extension

Impact

Medium - Feature works but has issues

Code of Conduct

  • I have joined the Discord server and will post updates there
  • I have searched existing issues to avoid duplicates

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions