Kit
ConvertKit form not working
Kit is the product ConvertKit became. The embed still fails in the same places: the script never runs, the form id is stale, or the subscriber is pending and you are looking at confirmed contacts.
Symptoms
- The form is visible and submit does nothing.
- The hosted Kit form works. The embed on your site does not.
- The request succeeds and the person never appears under confirmed subscribers.
- A redesign put the form markup back and left out the script.
Common causes
The form id changed
Duplicating a form or rebuilding it issues a new id. The embed on the site still posts the old one, which Kit no longer accepts.
The script is blocked
Content-Security-Policy or a consent banner blocks the Kit script. The HTML form is on the page with no handler. Submit is a no-op or a full page reload.
A framework re-render removed the handlers
Client-side navigation replaces the node Kit enhanced. The form looks the same and no longer posts. A full reload sometimes works, which is the clue.
Double opt-in
The API returned success and the subscriber is unconfirmed. The confirmed list stays empty until they click the email. That email can itself fail. See the Resend and auth-email guides if you send it yourself.
The snippet was escaped into text
A page builder escaped the script tag. View source shows the tag as text, not as an element. The form never boots.
Fix it
Open the hosted form
Use the Kit-hosted form URL. If that subscribes you, the form and the account are fine and the embed is the bug.
Compare the embed to the current form
View source on your page. The script and the form id should match the embed code Kit shows for this form today, not the one in an old prompt.
Look for a blocked script
In the browser console, a CSP error or a consent tool blocking the request is the whole bug. Allow the Kit host in script-src and in the consent category that should load it.
Watch the submit request
On submit, the network panel should show a request to Kit. No request means JavaScript never bound the form. A 4xx means the id or the account is wrong.
Check pending subscribers
If the request is a success, look at unconfirmed subscribers before you change code. Resend the confirmation if the person is stuck there.
Paste the embed again after a redesign
Do not rebuild the markup by hand from memory. Paste the current snippet, then submit once on the production domain.
Catch it automatically
Describe the form in one sentence and replay it. The check fills a monitor address and asserts the success state. If a regeneration removes the script, the success state never shows and you get the step that failed.
Watch the next break before a customer does.
Map the path once. The next publish does not get to fail in private.
Questions
Is ConvertKit a different product from Kit?
Kit is the current name. Old embed URLs and docs still say ConvertKit. The form id and the script are what matter, not the name in the prompt that generated the page.
The hosted form works. Why doesn't the embed?
The account is fine. The script on your page is missing, blocked, or bound to a node your framework replaced.
Can a replay tell confirmed from pending?
It can assert the success message on the page. Confirmation email is a second step. If that message never appears, you do not need the subscriber list to know the embed is broken.