fix: improve connection string error handling for common copy-paste mistakes by dkohn1337 · Pull Request #1128 · cloudinary/cloudinary_wordpress

Summary

Author: Dor Kohn
Context: Product Manager Home Assignment

This PR improves the connection string handling in the WordPress plugin setup wizard to prevent common copy-paste errors that cause connection failures.

Problem

Users frequently encounter "Incorrect connection string" errors during initial setup due to:

  1. Angle bracket placeholders: The Cloudinary dashboard shows cloudinary://<your_api_key>:<your_api_secret>@<cloud_name>. Users copy this literally, including the <> brackets, resulting in a cryptic error with no guidance.

  2. CLOUDINARY_URL= prefix: The dashboard's "Environment variable" format includes CLOUDINARY_URL= prefix. Users must manually remove this, but the error message doesn't explain why it fails.

  3. Inconsistent handling: The wizard REST endpoint and settings page handle connection strings differently, creating unpredictable behavior.

Solution

  1. Added normalize_cloudinary_url() method - Centralizes URL preprocessing:

    • Trims whitespace and surrounding quotes
    • Strips CLOUDINARY_URL= prefix automatically
    • Applied consistently across all connection flows
  2. Added angle bracket detection - Returns a helpful error message:

    "Your connection string contains angle brackets (< or >). Replace the placeholder values like <your_api_key> with your actual credentials."

  3. Updated regex - Now supports cloud names with underscores, hyphens, and numbers.

Testing

  1. Paste cloudinary://<api_key>:<api_secret>@cloud → Shows angle bracket error
  2. Paste CLOUDINARY_URL=cloudinary://123:abc@mycloud → Auto-strips prefix, attempts connection
  3. Paste valid credentials with prefix → Connects successfully

Files Changed

  • php/class-connect.php - Core connection handling logic