License and Registration Issues
This page collects the licensing and registration problems that most often lead to support tickets: a BCCL installation that suddenly reports itself as a trial version, registration that fails because the license server cannot be reached, a license key registered against the wrong tenant, and moving a license when a Business Central environment migrates to another tenant. Each section states the symptom, the cause, and the exact resolution path, so you can tell immediately whether the fix is something you can do yourself or something that requires hougaard.com support.
"Trial version detected" After BCCL Has Been Working
Symptom
BCCL has been running normally, often for a long time (more than a year in reported cases), and then one day the scheduled transfers stop updating the destination. When you run a command from the command prompt, the output begins with:
Trial version detected, data transfers are limited to 100 records upload and 50000 bytes download.
No separate licensing error dialog appears. The running operation simply stops updating the destination in full, and the command-line output reports the trial message.
Cause
The BCCL license has expired. When the license is no longer valid, BCCL falls back to trial behaviour, which is why an installation that previously ran without limits suddenly reports itself as a trial.
This is not a corruption, reinstall, or configuration problem, and it is not caused by anything the user changed. An installation that has been running untouched for a long time can show this message purely because the license reached its end date.
A second possible cause is that the BCCL instance on this particular machine was never registered. This is typical when BCCL has been copied to a new server. See "Each BCCL Installation Must Be Registered" below.
Resolution
Contact Hougaard support at support@hougaard.com to have the license status checked and renewed. In your message, include:
- That the message
Trial version detectedappeared. - Roughly when BCCL stopped updating.
There is no self-service license reset, re-activation command, or workaround for an expired license. Do not reinstall or reconfigure BCCL; treat the message as a license-validity question and route it to support.
What Happens When the BCCL License Expires
| Observation | Behaviour |
|---|---|
| Error dialog | None. BCCL does not display a separate licensing error. |
| Running operations | Continue to run, but under trial limits (100 records upload, 50000 bytes download per transfer). |
| Command-line output | Starts with Trial version detected ... |
| Configuration and scripts | Unaffected. Nothing needs to be changed once the license is renewed. |
Each BCCL Installation Must Be Registered
BCCL registration is stored locally on the machine where the --register command was run. When you copy or install BCCL on a new server, for example when moving from a test server to a production server, that instance must be registered on that machine before it will run licensed.
Symptom
Scripts that ran licensed on the old server print the trial message on the new server:
Trial version detected, data transfers are limited to 100 records upload and 50000 bytes download.
Data transfers are then limited to a maximum of 100 records upload and 50000 bytes download per transfer.
Resolution
Run the registration command on the new machine:
BCCL --register <registration-key> --tenantid <tenant-id>
The registration key is issued per customer. The person running the deployment must obtain it from the licence owner.
Recommended Practice: Register on Every Run
Add the --register line as the first line of your batch file. Every run then verifies that the instance it is running on is registered, and a copy of the script deployed to a new server registers itself automatically:
@echo off
BCCL --register 00000000-0000-0000-0000-000000000000 --tenantid 00000000-0000-0000-0000-000000000000
BCCL --remember --auth S2S --clientid <client-id> --clientsecret "<client-secret>" --tenantid <tenant-id> -f sql --sqlconnect "Server=<server>;Database=<database>;User ID=<user>;Password=<password>" -w "https://api.businesscentral.dynamics.com/v2.0/<tenant-id>/<environment>/WS/<company name>/Codeunit/bccl"
BCCL -t getdata -s table=18 -o Customer -m mapping\Customer.mapping.json
Remembered Parameters Are Also Machine-Local
Parameters stored with --remember are saved locally on the machine where the command was run. A new server therefore needs its own --remember run in addition to --register. The Business Central tenant, environment, web service URL, and S2S client ID and secret do not change when only the local server changes; only the local registration and, typically, the SQL connection string are machine-specific.
"Cannot contact hougaard.com for license verification"
Symptom
Registration fails with:
Cannot contact hougaard.com for license verification (Object reference not set to an instance of an object.)
Registration failed, please use --register with a valid key
Cause
The first thing to check is whether a firewall or proxy on the server or the customer network is blocking access to the license check host check.hougaardlicense.com.
The machine running BCCL must be able to reach check.hougaardlicense.com for license verification.
Diagnostic Steps
- Ping the license host from the server:
ping check.hougaardlicense.com
The host resolves to an Azure web app host name.
- Open the host in a browser on the server itself. A successful ping is not sufficient proof that verification will work. Open
check.hougaardlicense.comin a web browser on the server. If ping replies but the browser cannot open the site, the block is at the HTTP/HTTPS or proxy level, and the customer's IT department must allow it.
Resolution
Have the customer's IT or network administrators allow outbound access to check.hougaardlicense.com from the server. Then re-run the --register command.
Registering on the Wrong Tenant (Resetting a Registration)
Q: I registered my BCCL license on the wrong tenant. Can I re-register it myself?
A: No. The registration must be reset by Hougaard.com. Send the license key, the incorrect tenant ID, and the correct tenant ID to support. Once support confirms the key has been reset, run
bccl --register <license-key> --tenantid <tenant-id>again with the correct tenant ID.
Why You Cannot Fix This Yourself
- A BCCL license key is bound to the tenant ID it was registered against. Once registered on a tenant, it cannot simply be re-registered on a different tenant by the end user.
- Resetting a license key registration can only be done by Hougaard.com on the license server side. There is no in-product or command-line action that releases a license from a tenant.
- This applies regardless of where the license was purchased. A license bought through a partner or reseller is still reset by Hougaard.com support.
Reset Workflow
- Open a support ticket at hougaard.com and supply:
- The license key.
- The tenant ID where the key was incorrectly registered.
- The correct tenant ID where it should be registered.
- Hougaard.com support resets the license key.
- Support confirms the reset in the ticket.
- Run the registration command again with the correct tenant ID. Registration then succeeds.
The license key itself is unchanged by the reset. You reuse the same key; only the tenant binding is cleared.
Registration Command Syntax
bccl --register <license-key> --tenantid <tenant-id>
| Parameter | Value |
|---|---|
--register |
The license key (GUID format) issued for the customer. |
--tenantid |
The Business Central / Entra tenant ID (GUID format) that the license must be tied to. |
Example with placeholder values:
bccl --register 00000000-0000-0000-0000-000000000000 --tenantid 00000000-0000-0000-0000-000000000000
Warning: The tenant ID you supply here is the tenant the license becomes locked to. Supplying the wrong tenant ID requires the support-side reset described above. Verify the tenant ID before running the command.
Moving a BCCL License to Another Business Central Tenant
This section covers what happens to a BCCL license when a Business Central environment is migrated from one tenant to another, for example when a sister company's tenant is consolidated into the parent company's tenant.
Key Facts
- A BCCL commercial license is bound to a tenant ID. Moving the Business Central environment to a different tenant therefore requires the license binding to be updated.
- You do not need to purchase a new license when the environment is migrated. The existing license is re-bound to the new tenant.
- Registering the license on the new tenant does not by itself remove the binding to the old tenant. Both tenant registrations remain visible on Hougaard's side until the old one is removed manually by support.
- Removing the old tenant binding is a manual, support-side operation. You must contact Hougaard support and state explicitly which tenant ID should be removed. Support can see the list of tenant IDs a license is currently used on and will ask you to identify the one to delete if it is ambiguous.
- There is no self-service way to delete a tenant registration from the license server.
Steps
- Complete the Business Central environment migration to the new tenant.
- Register the existing BCCL license on the new tenant:
bccl --register <license-key> --tenantid <new-tenant-id>
- Verify the license is recognised on the new tenant:
bccl --check
- Contact Hougaard support. State that a tenant migration has taken place and supply the tenant ID of the old tenant that should be removed (and, if requested, the license key so support can locate the license).
- Support removes the old tenant binding and confirms.
Running on Two Tenants During a Migration
- A BCCL commercial license normally allows one tenant at a time.
- On request, Hougaard support can temporarily enable a single license for two tenants for a short period, so the old and the new tenant can both run during a cut-over or migration window.
- This is granted by contacting support. It is not a self-service setting and it is not permanent.
- After the migration is finished, tell support which tenant ID to remove so the license is back to a single tenant.
What to Include When You Contact Support
| Item | Why it is needed |
|---|---|
| Tenant ID (GUID) of the new tenant the license should stay on | Identifies the binding to keep. |
| Tenant ID (GUID) of the old tenant to be removed | Support will not guess which tenant to delete; an explicit tenant ID is required before any removal is performed. |
| Whether a temporary two-tenant period is needed, and for how long | Lets support enable the cut-over window. |
Common Misunderstandings
| Assumption | Reality |
|---|---|
| Re-registering on the new tenant automatically releases the old tenant. | It does not. The old registration stays until Hougaard support removes it. |
| A second license must be bought for the new tenant. | No additional purchase is needed. The existing license is re-bound. |
Running --forget or clearing local settings releases the tenant binding. |
Clearing local settings on a client machine is unrelated to the tenant binding held on the license server. |
"A valid license not found for ..." Is Not a BCCL Message
Errors worded A valid license not found for <name>. are not generated by BCCL or by other hougaard.com apps. They are raised by third-party extensions installed in the same Business Central environment.
Before raising a ticket with hougaard.com about a license-related error inside Business Central, verify its origin with Share Details on the error dialog and check the ... by <Publisher> suffix on the AL call stack lines. See Identifying Which App Raised an Error for the procedure and a worked example.
Quick Reference
| Symptom | Cause | Who resolves it |
|---|---|---|
Trial version detected ... after months or years of normal operation |
License expired | support@hougaard.com (renewal) |
Trial version detected ... on a newly deployed server |
Instance not registered on that machine | You: run --register (and --remember) on the new server |
Cannot contact hougaard.com for license verification |
Firewall/proxy blocks check.hougaardlicense.com |
Your IT: allow outbound access, then re-run --register |
| Registration fails because the key is bound to another tenant | Key registered on the wrong tenant | Support resets the key; you re-register with the correct tenant ID |
| Environment migrated to a new tenant | License still bound to the old tenant | You register on the new tenant; support removes the old binding |
A valid license not found for <name>. |
Third-party app | That app's publisher |