Common issues and solutions for the Ask Forge CLI, MCP server, LLM providers, and external tools.
By the SchemaSmith Team · Last reviewed
Find your problem, understand the cause, apply the fix.
When no license file is found anywhere in the search path:
LICENSE ERROR: No license file found. ForgeBarrett requires an AskForge license.
When a license file is found but has no active AskForge add-on (a different add-on, or an AskForge add-on expired past its grace period):
LICENSE ERROR: No active AskForge add-on found in license.
Either no license file was found, or the license that was found has no active AskForge add-on. Ask Forge requires a valid license with an active AskForge add-on to run.
SchemaSmith License.lic is accessible.SCHEMASMITH_LICENSE environment variable to the license file path or its directory:
set SCHEMASMITH_LICENSE="C:\path\to\SchemaSmith License.lic"
export SCHEMASMITH_LICENSE="/path/to/SchemaSmith License.lic"
ask-forge executable.--LicenseFile: argument, the SCHEMASMITH_LICENSE environment variable, the tool directory, parent directories (walks up to root), then PATH directories.The AskForge add-on includes a 30-day grace period after its expiration date. While the add-on is expired but still within the grace period, Ask Forge continues to run normally. Once the grace period ends, the add-on is no longer active and Ask Forge exits at startup with the same code-2 error as a missing add-on:
LICENSE ERROR: No active AskForge add-on found in license.
The AskForge add-on's expiration date plus its 30-day grace period has passed.
Contact sales@SchemaSmith.com for license renewal.
No provider is set as active, or llm.active points to a provider name that does not exist in the llm.providers dictionary.
This message appears when attempting any LLM operation: sending prompts, testing connections, or listing models.
ask-forge and run llm, or inspect ~/.schemasmith/askforge.json directly{
"llm": {
"active": "your-provider-name",
"providers": {
"your-provider-name": {
"type": "openAI",
"apiKey": "sk-...",
"model": "gpt-4o"
}
}
}
}
set SCHEMASMITH_LLM_PROVIDER=openAI
set SCHEMASMITH_LLM_API_KEY=sk-...
set SCHEMASMITH_LLM_MODEL=gpt-4o
export SCHEMASMITH_LLM_PROVIDER=openAI
export SCHEMASMITH_LLM_API_KEY=sk-...
export SCHEMASMITH_LLM_MODEL=gpt-4o
SCHEMASMITH_LLM_PROVIDER is set, Ask Forge creates a synthetic provider named env-override and activates it automatically.
Ask Forge validates each configured provider's required fields at startup. Validation issues are reported per provider by the interactive llm command (launch ask-forge, then run llm).
Every provider requires type and model. The table below lists the additional fields each type needs.
| Provider | Required Fields |
|---|---|
| Ollama | endpoint, model |
| OpenAI | apiKey, model |
| Azure OpenAI | endpoint, apiKey, deployment, model |
| Anthropic | apiKey, model |
| Groq, Gemini, Mistral, DeepSeek, xAI | apiKey, model |
| Custom | model (no apiKey or endpoint enforced) |
If a provider has validation issues, it will not be initialized even when set as active. Launch ask-forge and run llm to list every configured provider with its validation status (invalid ones are flagged), then add the missing required fields.
Invalid API key, wrong endpoint, or network issue.
${ENV_VAR} substitution in apiKey, verify the referenced environment variable is set:
# Config uses: "apiKey": "${ANTHROPIC_API_KEY}"
echo $ANTHROPIC_API_KEY
curl http://localhost:11434/api/tags
ask-forge and running llm — Ask Forge runs a live connection test when you configure or switch providers and reports the result there (the welcome banner also shows it for the active provider).The type field in the provider config is set to an unrecognized value.
Ollama, OpenAI, AzureOpenAI, Anthropic, Groq, Gemini, Mistral, DeepSeek, XAi, Custom
The provider passed validation but failed while initializing (e.g., a malformed endpoint URL).
Check the provider configuration values. The error message includes the underlying exception detail.
Could not find 'SchemaTongs' executable. Please ensure SchemaSmith tools are installed and available in PATH.
Or set the SchemaSmithPath environment variable to the install directory.
The external SchemaSmith tool is not installed or not discoverable. The three tools are single cross-platform binaries — SchemaTongs, SchemaQuench, and DataTongs (with a .exe suffix on Windows). The same binary serves SQL Server, PostgreSQL, and MySQL.
SchemaSmithPath environment variable at the install directory:
set SchemaSmithPath="C:\path\to\install\dir"
export SchemaSmithPath="/path/to/install/dir"
SchemaSmithPath environment variable, then Program Files\SchemaSmith\SchemaSmith, then your PATH.
No connection configured for sqlserver. Use manage_connection to add one:
manage_connection action=set platform=sqlserver server=<host> database=<db> user=<user> password=<pass>
An external tool was invoked but no saved connection was found for the platform.
Save a connection for the platform:
ask-forge manage-connection --action set --platform sqlserver \
--server localhost --database MyDB --user sa --password "..."
SchemaTongs (schema) and DataTongs (reference data) extract from a specific source database, so they require one — set either a database on the saved connection or a --database parameter. SchemaQuench does not need one: it connects at the server level, and the DatabaseIdentificationScript in your product's templates identifies which databases to deploy to.
Provide the source database. Either update the saved connection to include one:
ask-forge manage-connection --action set --platform sqlserver --database MyDB
Or pass --database MyDB to the extraction tool when you run it.
Operation timed out after 5.0 minutes.
(showing last 50 of 2341 lines)
...
Full output: /path/to/Logs/SchemaTongs - Progress.log
The tool takes longer than the 5-minute default timeout.
This can happen with large databases. The process is killed after timeout. Check the progress log for how far it got:
ask-forge view-log --log-path "/path/to/Logs/SchemaTongs - Progress.log"
Consider extracting a subset of objects using --object-filter to reduce scope.
SchemaTongs failed with exit code 1:
(showing last 50 of 120 lines)
...
Full output: /path/to/Logs/SchemaTongs - Progress.log
Connection details invalid, database unreachable, permission issue, or tool-specific error.
sqlcmd, psql, or mysql).ask-forge view-log --log-path "/path/to/Logs/SchemaTongs - Progress.log"
Failed to start process: /path/to/SchemaTongs
Or:
Error running /path/to/SchemaTongs: <exception detail>
The tool path exists but the executable cannot be launched (permissions, architecture mismatch, missing runtime).
chmod +x /path/to/SchemaTongs (macOS/Linux).Server path incorrect, license validation failed, or configuration error.
dotnet ForgeBarrett.Mcp.dll
The MCP server writes diagnostics to stderr. License errors, startup messages, and tool counts all appear there.
MCP Server starting on stdio with N tools registered...This operation requires confirmation.
Tool: schemasmith_apply_change
Tier: Modify (Modifies files or creates packages)
Description: ...
To execute this tool, add 'confirm: true' to the arguments.
Modify and External tier tools require explicit confirmation via the confirm parameter.
The MCP client (AI assistant) must include "confirm": true in the tool call arguments for Modify and External tier tools. This is by design -- these tools modify files or invoke external processes.
This is not an error. Tools at Tier 3 (Modify) and Tier 4 (External) append [Requires confirm: true] to their descriptions so AI clients know to pass the confirmation flag.
Invalid JSON in the config file.
Ask Forge does not crash on a malformed config file. Running ask-forge show-config reports the specific parse error — for example, Failed to read configuration: Invalid character after parsing property name (with the line and position) — which pinpoints the syntax problem.
type %USERPROFILE%\.schemasmith\askforge.json | python -m json.tool
cat ~/.schemasmith/askforge.json | python3 -m json.tool
del %USERPROFILE%\.schemasmith\askforge.json
ask-forge show-config
rm ~/.schemasmith/askforge.json
ask-forge show-config
ask-forge show-config to verify what configuration is currently active.Shell session not refreshed, variable name is wrong, or config precedence issue.
Explicit CLI parameter > environment variable > config file.
echo %SCHEMASMITH_LLM_PROVIDER%
echo $SCHEMASMITH_LLM_PROVIDER
SCHEMASMITH_LLM_PROVIDER, SCHEMASMITH_LLM_API_KEY, SCHEMASMITH_LLM_MODELSchemaSmithPath (install directory for the external SchemaTongs / SchemaQuench / DataTongs binaries)SCHEMASMITH_OPENAI_API_KEY, SCHEMASMITH_OPENAI_MODELSCHEMASMITH_ANTHROPIC_API_KEY, SCHEMASMITH_ANTHROPIC_MODELSCHEMASMITH_OLLAMA_ENDPOINT, SCHEMASMITH_OLLAMA_MODELNo connection configured for the requested platform.
ask-forge list-connectionsask-forge manage-connection --action set --platform sqlserver \
--server localhost --database MyDB --user sa --password "..."
The current trust level does not permit the requested tool tier.
| Trust Level | Allowed Tiers |
|---|---|
observer |
Tier 1 (ReadOnly) only |
assistant default |
Tier 1 (ReadOnly) + Tier 2 (Generate) |
operator |
All tiers (ReadOnly, Generate, Modify, External) |
ask-forge and run config, or read agent.trustLevel in ~/.schemasmith/askforge.json{
"agent": {
"trustLevel": "operator"
}
}
config agent trustlevel operator
A Tier 3 or 4 tool was invoked without --yes in a non-interactive context.
--yes to bypass confirmation:
ask-forge run-schema-tongs --platform sqlserver --yes
{
"agent": {
"confirmationLevel": "never"
}
}
always default -- prompts for Modify and External tiersexternal -- prompts for External tier onlynever -- no promptsAsk Forge is not on PATH, or the command name has a typo.
ask-forge --versionlist-tables, not listTables or list_tables.ask-forge --help.Command requires a product or template context but none is set.
--product and --template flags:
ask-forge list-tables --product ./MyProduct --template Default
> navigate-context --product ./MyProduct --template Default
ask-forge from within your schema product directory.Current directory does not contain a Product.json file, and no previous session was saved.
Either pass --product /path/to/product explicitly, or cd into a directory that contains Product.json before running ask-forge.
These commands help diagnose configuration and connectivity issues:
| Command | Purpose |
|---|---|
ask-forge show-config |
Display the configuration file path and saved database connections |
ask-forge show-context |
Display current product/template context |
ask-forge list-connections |
List all saved database connections |
ask-forge view-log --log-path <path> |
View the tail of an external tool log file |
ask-forge → llm |
In interactive mode: show the active LLM provider, its live connection-test result, and all configured providers with validation status |
ask-forge → config |
In interactive mode: show LLM config, trust level, saved connections, and external tool resolution |