---
url: 'https://dxpr.com/hc/documentation/learn-dxpr-builder/troubleshooting/licence-and-product-key'
title: 'Licence and product key errors | DXPR'
author:
  name: docs-sync
  url: 'https://dxpr.com/users/docs-sync'
date: '2026-10-23T14:31:17+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: '"Insufficient User licenses", "trouble connecting to the DXPR servers", or a rejected product key'
tags:
  - 'Fix a problem'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-23T14:31:17+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'Licence and product key errors'
      description: '"Insufficient User licenses", "trouble connecting to the DXPR servers", or a rejected product key'
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-23T14:31:17+0000'
      dateModified: '2026-10-23T14:31:17+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/hc/documentation/learn-dxpr-builder/troubleshooting/licence-and-product-key'
      articleSection: 'Fix a problem'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/hc/documentation/learn-dxpr-builder/troubleshooting/licence-and-product-key'
      description: '"Insufficient User licenses", "trouble connecting to the DXPR servers", or a rejected product key'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Home
            item: 'https://dxpr.com/'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: en
---
[Help Center](/hc)/[Documentation](/hc/documentation) /[Learn DXPR Builder](/hc/documentation/learn-dxpr-builder) /[Manage the site](/hc/documentation/learn-dxpr-builder/manage) /[Fix a problem](/hc/documentation/learn-dxpr-builder/troubleshooting) # Licence and product key errors.

"Insufficient User licenses", "trouble connecting to the DXPR servers", or a rejected product key

 Learn DXPR BuilderManage the siteFix a problem

   ## In this guide

 Related guides

- [Managing licences](/hc/documentation/learn-dxpr-builder/licensing/managing-licences)

Free a licence, get the editor back after a key change, or restore the connection to DXPR. Three facts explain nearly every licence question. Each account with the editing permission uses a licence. Licences are counted across every site that shares the key. And the site keeps the last licence check for up to a day.

## I see "insufficient User licenses"

The full message starts "Oops, the no-code editor is not loading here because there are insufficient User licenses included in your DXPR.com subscription."

How licences are counted:

- **Permission:** every account in a role with **Edit with DXPR Builder** uses a licence, even if it never opens the editor. User 1 always counts. Excluded accounts do not.
- **Email:** accounts are matched by email address across every site on the key. One person on production and staging counts once. Three test accounts count three times.
- **Order:** when there are more accounts than licences, the accounts registered first keep the editor. The others see the message.

To free licences:

1. Go to **DXPR Studio** &gt; **DXPR Builder** &gt; **User Licenses**(`/admin/dxpr_studio/dxpr_builder/user_licenses`).
2. Click **Exclude from editing** next to accounts that should not edit.
3. Click **Delete license data** next to emails that no longer have an account on this site.
4. Remove **Edit with DXPR Builder** from roles that do not need it, on every site that shares the key.
5. Clear all caches on every site.

**Note:** a licence assigned less than 30 days ago cannot be excluded yet. The **Operations** column shows "Can be excluded in" and the number of days.

**Tip:** you can also tick **Exclude from DXPR builder editing** on a user's edit form. Only roles with **Administer DXPR Builder configuration** see that box.

## I see another limit message

- **"Only one account can use DXPR Builder on the DXPR Free tier".** The Free tier allows one editor, the account named in the message. Add a paid subscription through the link in the message.
- **"Sorry, you cannot author more than ... content items".** Your plan limits the number of pages built with DXPR Builder. The linked **Content items** page lists them. Upgrade through the link in the message.
- **"your user account does not have a valid email address".**Licences are tied to email addresses. Give the account a valid address on its edit form.

## I see "We are having trouble connecting to the DXPR servers"

The **User Licenses** table may also say "There are no billable users recorded yet." The site could not get its licence status from DXPR. A rejected product key causes the same message, so check the key first (next section).

1. Allow outbound HTTPS from the web server to `dxpr.com`, and to `kavya.dxpr.com` if you use the AI features. Editors' browsers must reach `cdn2.dxpr.com`. See [Using DXPR Builder behind a firewall](/hc/documentation/learn-dxpr-builder/getting-started/behind-a-firewall).
2. Run `curl -I https://dxpr.com` on the server. A TLS or DNS error here is a hosting problem.
3. Open **Reports** &gt; **Recent log messages** and look for "License info API call failed". The entry shows the error, for example `cURL error 35` for a failed TLS handshake.
4. Clear all caches. The site keeps a failed check for 30 minutes before it asks again.

## My product key is not accepted

Go to **DXPR Studio** &gt; **DXPR Builder** &gt; **General Settings**(`/admin/dxpr_studio/dxpr_builder/settings`) and open the **License** section. What you check depends on **Storage method**.

With **Configuration storage**, you paste the key into **Product key** and the form checks it when you click **Save settings**:

- **"Invalid product key. Copy the complete key without extra spaces."** Copy the whole key again. Delete any space or line break at the end of the field. A key made for DXPR Builder 1.x also shows this error; paste your current key instead.

With **Key module**, the key lives in the Key entity selected under **Key**, and the form checks that key's value. **"The selected key does not hold a valid product key."** means it holds another secret, such as an AI provider's key, or a broken key. Pick the right key, or go to **Configuration** &gt; **System** &gt; **Keys**(`/admin/config/system/keys`), edit that key and paste the whole product key as its value.

After a change, clear all caches. The site keeps a successful licence check for 24 hours.

**Note:** staging and development copies need the key as well. They share licences with production through email matching.

**Tip:** on production, use **Key module** with a key that reads an environment variable or a file. A key with the **Configuration**provider is still exported with your configuration.

## Confirm the fix

Reload the page in a private window as an editor. The message is gone and the **User Licenses** table lists the expected accounts.

## What's next?

[Managing licences](/hc/documentation/learn-dxpr-builder/licensing/managing-licences) for plan limits and the day-to-day use of the table.