convoup Docs
Docs / Resources / FAQ & Troubleshooting

FAQ & Troubleshooting

Common issues and solutions for the Convoup SDK.

Installation & Setup

npm install convoup fails

Possible causes

Check that your Node.js version is 18 or higher. The SDK uses native fetch which requires Node.js 18+.

bash
node --version  # Should be v18.0.0 or higher

Convoup is not a constructor

Make sure you are importing from the correct module:

TypeScript
// Correct
import { Convoup } from 'convoup';

// Wrong
const Convoup = require('convoup');

Authentication

401 Unauthorized on every request

  1. Verify your API key in the Convoup dashboard
  2. Check for extra whitespace or newline characters in your environment variable
  3. Ensure the key is set as a server-side environment variable, not in client code
TypeScript
// Debug: check what key is being used (never log this in production!)
console.log('Key starts with:', process.env.CONVOUP_API_KEY?.substring(0, 8));

WABA ID required error

Your API key has access to multiple WABAs. Pass the wabaId:

TypeScript
const client = new Convoup({
  apiKey: process.env.CONVOUP_API_KEY!,
  wabaId: 'your-waba-id',
});

Templates

TEMPLATE_NOT_FOUND

TEMPLATE_PARAM_MISMATCH

The number of params you provided doesn't match the template's placeholders:

TypeScript
// If template body is "Hi {{1}}, your OTP is {{2}}"
// Correct: 2 params
bodyParams: ['Rahul', '123456']

// Wrong: 1 param
bodyParams: ['Rahul']

Use template discovery to check parameter count:

bash
curl https://api.convoup.com/api/v1/templates \
  -H "x-api-key: YOUR_API_KEY"

TEMPLATE_REQUIRED when using sendText()

You can only send free-form text within a 24-hour window after the customer messages you. Outside this window, you must use an approved template:

TypeScript
// Instead of sendText(), use sendOtp or sendTemplate
await client.sendTemplate({
  to: '+918851479441',
  template: 'follow_up_template',
  language: 'en_US',
  bodyParams: ['Your message here'],
});

Messages

RECIPIENT_SUPPRESSED

The recipient has blocked your WhatsApp number or is on the suppression list. Remove this number from your list and do not retry.

Messages not delivering

Language

Template not found in specific language

The template must be approved in that specific language. Check available languages in the dashboard:

TypeScript
await client.sendOtp({
  to: '+918851479441',
  template: 'test_welcome_template',
  code: '123456',
  language: 'hi_IN', // Must be approved for Hindi
});

Performance

Rate limiting

Not specified in the current SDK documentation

Rate limits are not documented in the current SDK reference. Contact Convoup support for specific limits.

Slow responses in bulk sending

When sending to many recipients, use Promise.allSettled() with concurrency control rather than sending all at once:

TypeScript
import pLimit from 'p-limit';
const limit = pLimit(10); // 10 concurrent sends

const results = await Promise.allSettled(
  customers.map(c => limit(() => client.sendOtp({
    to: c.phone,
    template: 'test_welcome_template',
    code: c.code,
  })))
);

Next Steps