Mintplex-Labs/anything-llm · error · Error
No FireworksAI API key was set.
Error message
No FireworksAI API key was set.
What it means
The FireworksAiLLM constructor throws immediately when the FIREWORKS_AI_LLM_API_KEY environment variable is not set. AnythingLLM instantiates the provider class the moment a chat or embedding request selects FireworksAI, so this error surfaces as a failed request or provider-selection failure, not a startup crash. The key is required because every Fireworks call goes through the OpenAI-compatible client pointed at https://api.fireworks.ai/inference/v1.
Solutions
- Add FIREWORKS_AI_LLM_API_KEY=<your key> to the server .env (get it from firework.ai -> Account -> API Keys) and restart the server
- Confirm the variable name exactly matches FIREWORKS_AI_LLM_API_KEY — not FIREWORKS_API_KEY
- If running in Docker/compose, make sure the env var is passed into the container (env_file or environment entry) and recreate the container
- Verify with a quick check before selecting the provider: node -e "console.log(!!process.env.FIREWORKS_AI_LLM_API_KEY)"
Example fix
# before (.env) # no Fireworks key # after (.env) FIREWORKS_AI_LLM_API_KEY=fw_XXXXXXXXXXXXXXXX
Defensive patterns
Strategy: validation
Validate before calling
const hasKey = !!process.env.FIREWORKS_AI_LLM_API_KEY;
if (!hasKey) {
// show provider setup screen instead of attempting chat
return setupError("FireworksAI requires FIREWORKS_AI_LLM_API_KEY");
}
const llm = new FireworksAiLLM(embedder, modelPref); Try / catch
try {
const llm = new FireworksAiLLM(embedder, modelPref);
} catch (err) {
if (err.message === "No FireworksAI API key was set.") {
return respond("Add FIREWORKS_AI_LLM_API_KEY in settings before using FireworksAI.");
}
throw err;
} Prevention
- Validate required env vars at app boot and list missing ones in one report
- Use a startup checklist that asserts provider env vars before enabling the provider in the UI
- Keep a template .env.example documenting FIREWORKS_AI_LLM_API_KEY
When it happens
Trigger: Selecting FireworksAI as the LLM provider in the app while FIREWORKS_AI_LLM_API_KEY is absent from the process environment (not in .env, or the server was started before the var was added, or the deployment environment dropped it). The constructor runs per-request, so even a valid workspace with an otherwise correct config fails until the key exists.
Common situations: Copied .env from another provider's setup and forgot the Fireworks key; running under Docker/systemd where the env file isn't loaded into the process; CI or a fresh clone without the key; typo in the variable name (e.g. FIREWORKS_API_KEY instead of FIREWORKS_AI_LLM_API_KEY).
Understand the failure class
Background: "environment variable is not set" and "Missing keys in environment" errors: what missing required env var messages mean and how to fix them — this error's family across 28 libraries.
Related errors
- No Gemini API key was set.
- No Gitee AI API key was set.
- GenericOpenAI must have a valid base path to use for the…
- No Foundry Base Path was set.
- No Gemini API key was set.
AI-assisted analysis of Mintplex-Labs/anything-llm@3aec848f28 (2026-08-18).
Data as JSON: /api/errors/ff039c7a675ce518.
Report an issue: GitHub.
Appendix: source
Thrown at server/utils/AiProviders/fireworksAi/index.js:23
const {
LLMPerformanceMonitor,
} = require("../../helpers/chat/LLMPerformanceMonitor");
const {
handleDefaultStreamResponseV2,
} = require("../../helpers/chat/responses");
const cacheFolder = path.resolve(
process.env.STORAGE_DIR
? path.resolve(process.env.STORAGE_DIR, "models", "fireworks")
: path.resolve(__dirname, `../../../storage/models/fireworks`)
);
class FireworksAiLLM {
constructor(embedder = null, modelPreference = null) {
this.className = "FireworksAiLLM";
if (!process.env.FIREWORKS_AI_LLM_API_KEY)
throw new Error("No FireworksAI API key was set.");
const { OpenAI: OpenAIApi } = require("openai");
this.openai = new OpenAIApi({
baseURL: "https://api.fireworks.ai/inference/v1",
apiKey: process.env.FIREWORKS_AI_LLM_API_KEY ?? null,
});
this.model = modelPreference || process.env.FIREWORKS_AI_LLM_MODEL_PREF;
this.limits = {
history: this.promptWindowLimit() * 0.15,
system: this.promptWindowLimit() * 0.15,
user: this.promptWindowLimit() * 0.7,
};
this.embedder = !embedder ? new NativeEmbedder() : embedder;
this.defaultTemp = 0.7;
if (!fs.existsSync(cacheFolder))
fs.mkdirSync(cacheFolder, { recursive: true });
this.cacheModelPath = path.resolve(cacheFolder, "models.json");View on GitHub (pinned to 3aec848f28)