Docs/Troubleshooting/FAQ

FAQ

Troubleshooting
7 min read

FAQ

This page answers the most frequently asked questions about using iContentForge. If you don't find your answer here, please contact our support team at support@icontentforge.com.


Content Generation & Articles

Why did my article generation fail

Article generation can fail for several reasons. First, check the article's status in your project dashboard; it will be marked as "Error". Common causes include:

  • Insufficient Quota: Your plan's monthly article generation quota may be exhausted.
  • Keyword Issues: The target keyword might be too broad, ambiguous, or contain unsupported characters.
  • AI Service Interruption: Rarely, there might be a temporary issue with our underlying AI provider.
馃挕

Click on the failed article and review the error message for specific details. For quota issues, see the Billing section below.

My article was published but isn't visible on my site. Why

If the article status in iContentForge shows "published" but it's not live on your website, the issue is typically with your CMS or its cache.

  1. Check CMS Drafts: Log into your WordPress/Ghost/CMS directly. The article might be saved as a draft or pending review instead of published.
  2. Clear Cache: Clear any caching plugins (e.g., WP Rocket, W3 Total Cache) or server-level cache (Varnish, Cloudflare). Purge your CDN cache if applicable.
  3. Verify Permalinks (WordPress): Go to Settings → Permalinks and click "Save Changes" to refresh rewrite rules.

How do I delete a Project

  1. Go to your Projects dashboard.
  2. Click on the three-dot menu (...) next to the project you wish to delete.
  3. Select "Delete Project".
  4. Confirm by typing the project's name.
鈿狅笍

This action is irreversible. All articles, keyword matrices, and settings for that project will be permanently removed from iContentForge. It does not delete articles already published to your CMS.


CMS & Publishing

I'm getting a 401 or 403 error when connecting my CMS.

These are authentication errors — your credentials were rejected by the CMS.

  • WordPress: Use a valid Application Password (created under User Profile), not your regular login password.
  • Ghost, Contentful, Sanity, etc.: Check that the API key has the correct permissions (Administrator / Content read-write). Keys may have expired.
  • Generic Webhook: Verify the endpoint URL is reachable and returns a 2xx response.

How do I switch my Project to a different CMS platform

  1. Inside your Project, go to Settings → CMS Integration.
  2. Click "Disconnect" on the current CMS.
  3. Select your new CMS from the list.
  4. Enter the new connection details and test the connection.

Future articles in this project will be published to the new CMS. Previously published articles are not affected.

The Drip Feed isn't publishing articles. What's wrong

  • Ensure "Enable Drip Feed" is toggled ON in your Project's Publish Settings.
  • Check that you have articles with a "Ready" status — the Drip Feed only publishes articles in this state.
  • Verify your CMS connection is still active (use the "Test Connection" button in Settings).

Webhook Troubleshooting

My webhook is being called but the article content is empty on my site.

This is the most common webhook integration issue. The cause is almost always a field name mismatch between what iContentForge sends and what your receiver reads.

When using Template Mode, the JSON key names are whatever you defined on the left side of your template — not the iContentForge variable names on the right.

For example, if your template is:

{
  "content": "{{html}}",
  "summary": "{{excerpt}}"
}

Your receiver must read payload.contentnot payload.html. Check your receiver code and ensure it reads the exact key names from your template.

馃挕

If you're unsure what payload your receiver is getting, temporarily log the full rawBody string to your server console or use webhook.site to inspect the actual payload.

I'm getting a 401 "Invalid signature" error on my webhook receiver.

This is almost always caused by signing the re-parsed body instead of the raw body bytes.

Wrong approach:

const body = await req.json();             // parses JSON
const rawBody = JSON.stringify(body);      // re-serializes — may change byte order
// HMAC over this will NOT match iContentForge's signature

Correct approach:

const rawBody = await req.text();          // raw bytes, exactly as sent
// Compute HMAC over rawBody, THEN parse
const payload = JSON.parse(rawBody);

See the full working implementation in Generic Webhook Integration.

My webhook receiver is returning 400 "Invalid JSON body".

This means the JSON payload iContentForge sent could not be parsed by your server. This was caused by a known bug in older versions of iContentForge where article content containing special characters (newlines, quotes) was not properly JSON-escaped in Template Mode.

Fix: Update your iContentForge instance to the latest version. The applyTemplate engine now correctly escapes all string values before inserting them into the JSON template.

Which signature header should I read

iContentForge sends two headers for backwards compatibility:

HeaderStatus
X-ICF-Signature✅ Current — use this for all new integrations
X-ContentForge-Signature⚠️ Legacy — still sent but may be removed in a future version

Your receiver should check both:

const signature =
  req.headers.get("x-icf-signature") 
  req.headers.get("x-contentforge-signature") 
  "";

Account, Billing & Quota

What happens when I run out of my monthly article quota

Once you exhaust your plan's monthly quota, you cannot generate new articles until the next billing cycle or until you upgrade.

  • The "Generate Articles" button will be disabled.
  • A quota limit notification will appear in your dashboard.
  • Articles already in "queued" or "generating" status will complete — no new ones can start.
馃挕

You can upgrade at any time from Settings → Billing. New quota is available immediately, and billing is prorated.

I was a Beta user. Do I have any special benefits

Yes — all Beta participants have been grandfathered into special plan features as a thank you for early support. You can see your active plan details in Settings → Billing.


Features & Tools

Why is my Silo Radar showing a blank/empty screen

The Silo Radar visualizes your project's internal link structure. It will be blank if:

  • You haven't generated any articles yet for this project.
  • The generated articles don't have enough internal linking data. Generate more articles to see the structure emerge.
  • Try refreshing the page if it seems stuck loading.

The exported CSV file has garbled characters in Excel.

This is a UTF-8 encoding issue. Instead of double-clicking the file:

  1. Open Excel to a blank workbook.
  2. Go to the Data tab → Get Data → From File → From Text/CSV.
  3. Choose the exported file.
  4. In the preview window, set File Origin to 65001: Unicode (UTF-8).
  5. Click Load.

Where is my XML Sitemap

iContentForge automatically generates an XML sitemap for each active project at:

https://icontentforge.com/api/public/sitemap/[your-project-id]

You can find your Project ID in the URL when viewing your project dashboard, or in Project Settings. Submit this URL directly to Google Search Console.


Support

How do I contact support

  • Email: support@icontentforge.com
  • In-app: Click the Help () icon in the bottom-left of your dashboard and select "Contact Support" — this automatically attaches helpful account context.

Please include your account email, project name, and steps to reproduce the issue.

Where can I find the latest updates

  • In-app announcements — notifications in your dashboard.
  • Email Newsletter — sent to all registered users.
  • Documentation — the Changelog section is updated with every significant release.

Next Steps