Skip to content

[NOWEB] [GOWS] - ⚠️ Inconsistent API Response Structures Across Engines and Versions — No Versioning, No Notice #1489

@yusoft-app

Description

@yusoft-app

I’ve tested multiple WAHA versions and engines in production and noticed a very concerning inconsistency in API response formats — even for the same endpoint.

It seems like the response structure changes across both versions and engines, and this happens without any versioning, documentation, or announcement.


🔍 Summary of findings

  • Engine: NOWEB

    • Versions 2025.9.4 and below → API response structure A

    • Versions 2025.9.5 to 2025.9.7 → API response structure B (similar to GOWS engine)

    • Versions 2025.9.8 and 2025.10.1 → API response structure reverted to structure A

      • However, /api/sendImage is still broken with Media upload failed on all hosts

  • Engine: GOWS

    • Tested on version 2025.10.1/api/sendText and /api/sendImage both work correctly,
      but the response format is completely different from the NOWEB engine response.


❗ The problem

This inconsistency means that the same API endpoints (such as /api/sendText, /api/sendImage) return different JSON response structures depending on the engine or version — which is unacceptable for production-grade systems.

Applications integrating with WAHA (CRM, ERP, bots, or automation services) rely heavily on a consistent response structure.
Changing it silently breaks those integrations and causes widespread failures in production.

So the questions are:

  1. Is the API response intentionally different between engines (NOWEB vs GOWS)?

  2. Or is this inconsistency simply a result of missing Quality Control (QC) before release?

If this change was intentional, it should have been announced clearly and tied to an API version (e.g., /api/v2/...).
If it wasn’t intentional, then this represents a serious lack of internal QA/QC that makes WAHA feel unreliable for developers using it in production environments.


⚙️ Example evidence

Below is a comparison from my testing (simplified):

Version Engine /api/sendText /api/sendImage Response structure Status
2025.9.3 NOWEB ✅ Works ✅ Works Old format (A) Stable
2025.9.4 NOWEB ✅ Works ✅ Works Old format (A) Stable
2025.9.5–2025.9.7 NOWEB ✅ Works ⚠️ Sends 3x duplicate messages Changed to new format (B, similar to GOWS) Unstable
2025.9.8 NOWEB ✅ Works ❌ Fails (Media upload failed on all hosts) Reverted to old format (A) Broken
2025.10.1 NOWEB ✅ Works ❌ Fails (Media upload failed on all hosts) Old format (A) Broken
2025.10.1 GOWS ✅ Works ✅ Works New format (B) Stable

🧩 Example of difference

NOWEB (2025.10.1)

{
  "statusCode": 200,
  "id": "[email protected]_xxx",
  "message": "Message sent successfully"
}

GOWS (2025.10.1)

{
  "id": "[email protected]_xxx",
  "_data": {
    "Info": { "Chat": "[email protected]", "IsFromMe": true, ... },
    "Message": { "imageMessage": { "caption": "example" } }
  }
}

Same API endpoint, completely different JSON layout.


🧭 What should happen

WAHA must define and maintain consistent, versioned API responses — regardless of internal engine or implementation.
If the structure differs per engine, it must be clearly documented and versioned.

These silent structural changes without versioning or communication are highly unprofessional, especially for a system used in production with many business-critical integrations.


📝 Requests for the WAHA team

  1. Please confirm which API response format is the correct and official one (A or B).

  2. Clarify whether response differences between NOWEB and GOWS are intentional or due to lack of standardization.

  3. Consider introducing API versioning (/api/v1, /api/v2, etc.) or at least documenting response structure differences per engine.

  4. Re-test and ensure that /api/sendImage works properly in NOWEB engine (currently broken since 2025.9.8).


Consistency is a fundamental part of professional API design.
Right now, these unpredictable response changes — without versioning or notice — make it extremely difficult to maintain stable integrations with WAHA.

patron:PLUS

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions