Common error cases

Prev Next

Case 1

Below is an example of a product creation validation error.

// Missing required parameters
const product = window.insider.createNewProduct(
  null,           // ✗ id cannot be null
  'Product Name',
  [],             // ✗ taxonomy cannot be empty
  'https://example.com/image.png',
  -10.0,          // ✗ price cannot be negative
  ''              // ✗ currency cannot be empty
);

// Correct usage
const product = window.insider.createNewProduct(
  'prod-123',
  'Product Name',
  ['category', 'subcategory'],
  'https://example.com/image.png',
  99.99,
  'USD'
);

Case 2

Below is an example of an error in event parameter types.

try {
  const event = window.insider.tagEvent('custom_event');

  // Must match parameter types
  event.addStringParameter('key', 'value');        // ✓ Valid
  event.addStringParameter('key', 123);            // ✗ Error: not a string
  event.addNumericParameter('count', 42);          // ✓ Valid
  event.addNumericParameter('count', '42');        // ✗ Error: not a number
  event.addBooleanParameter('flag', true);         // ✓ Valid
  event.addBooleanParameter('flag', 'true');       // ✗ Error: not a boolean
  event.addDateParameter('timestamp', new Date()); // ✓ Valid
  event.addDateParameter('timestamp', Date.now()); // ✗ Error: not a Date object

  await event.build(); // Native errors can be caught using .catch(error)
} catch (error) {
  console.error('Validation failed:', error);
}

Case 3

Below is an example of an identifier creation validation error.

try {
  const identifiers = window.insider.createIdentifiers()
    .addEmail('')  // ✗ Error: email cannot be empty
    .addPhoneNumber('+1234567890')
    .addUserID('user-123');
} catch (error) {
  console.error('Validation failed:', error);
}