AI Model Response Issues
Gemini / Vertex AI responses are cut off mid-stream
Gemini / Vertex AI responses are cut off mid-stream
- In Workspace > Agents > (Edit agent) > Advanced Params, raise Max Tokens (num_predict) to 8192 or higher
- To apply instance-wide, an admin adjusts the value for that model under Admin > Settings > Models
I selected an Ollama model but Vertex AI settings are used
I selected an Ollama model but Vertex AI settings are used
- Model IDs — list the models that connection serves so they don’t overlap with another connection
- Prefix ID — if overlapping IDs are unavoidable, set a prefix on one connection. The model is then exposed as
prefix.modelID(the separator is a period)
Tool calls don't work for OSS models (Ollama, etc.)
Tool calls don't work for OSS models (Ollama, etc.)
- The model must be a registered model (agent) — picking an unregistered base model directly in chat gives it no tools
- The response must be streaming (see the next item)
stream=false API requests are routed as plain models
stream=false API requests are routed as plain models
stream=false aren’t routed to agents (Knowledge Base / DbSphere) and are processed as simple LLM calls only.Cause: Older routing conditions were limited to stream=true.Fix: OpenAI, Azure, and Vertex models route to agents even with stream=false. However, Ollama models only run agent tools when stream=true, so send stream=true when calling an Ollama agent from an external API.Chat / File Upload
Uploading multiple files at once leaves only the last one
Uploading multiple files at once leaves only the last one
- 5 or more at once switches to batch mode and shows progress in Notifications (the bell, top right)
- 4 or fewer don’t appear in the bell — check per-file status in the Knowledge Base’s file list
- If any file failed, use Retry failed files in the file list to process it again
After attaching a file in chat, responses are very slow
After attaching a file in chat, responses are very slow
- Sending is blocked until the upload finishes. Send after the upload indicator disappears
- Files larger than 20MB skip text extraction. If the AI answers that the document is too large to have been processed yet, this is the case
- Upload large or frequently referenced documents to a Knowledge Base in advance and reference them there. Knowledge Bases are indexed in the background, so there’s no extraction delay during the response
The AI doesn't recognize an attached image
The AI doesn't recognize an attached image
Chat file upload error messages are vague
Chat file upload error messages are vague
- “File size should not exceed N MB.” — You exceeded the upload limit set by an admin. Change it under Admin > Settings > Documents > Files > Max Upload Size (leave empty for unlimited)
[ERROR: File type '.xxx' is not allowed. Allowed types: ...]— An admin restricted the allowed extensions. The allowed list is included in the message; the setting is Allowed File Extensions on the same screen (leave empty to allow all)- If the format is right but the content isn’t recognized, check the Knowledge Base supported file formats list
Korean / Encoding
Korean characters are duplicated in the input box
Korean characters are duplicated in the input box
Korean characters get garbled when importing users via CSV
Korean characters get garbled when importing users via CSV
? or garbled characters when bulk-importing users via CSV.Cause: The Korean characters were already replaced with ? when the CSV file was saved. Files saved as CP949 / EUC-KR are detected automatically, so the encoding itself is not the cause.Fix:- In Excel, choose the “CSV UTF-8 (.csv)” format when saving. Re-saving as UTF-8 in Notepad or VS Code also works. Whether the file has a BOM makes no difference
- The first row is always treated as a header and skipped. If you start data on the first line with no header, that user is silently dropped
- Don’t put commas in values. The columns are fixed at four — name, email, password, role — and a comma inside a value shifts the column count so the row is rejected
Only part of the title is extracted in the glossary
Only part of the title is extracted in the glossary
- Check the Filename and Document content checkboxes
- When using content you can choose Full content or Partial content (first/last N chars). If the filename alone doesn’t match, turn on Document content and extract again
Guardrail PII detection doesn't work on Korean data
Guardrail PII detection doesn't work on Korean data
\b) treats Korean as a word character, so a match fails when Korean text runs directly into the value, as in sim@cloocus.com이.Fix: The latest version corrects email, credit card, IP address, and MAC address detection for Korean text. If detection is still missing, check the following in order under Workspace > Guardrails > (the guardrail).- Whether anything is selected under PII Types — a newly created guardrail has nothing selected
- Whether Apply to is enabled for the direction you need, input or output
- The built-in types are email, credit card, IP address, MAC address, URL, and API key — six in total. Country-specific identifiers such as a Korean resident registration number are not built in and must be added yourself under Custom Patterns (Regex)
- Use Test Guardrail with a real sentence to confirm detection
- If you need semantic judgement, additionally enable LLM-as-a-Judge. Rule-based detection cannot be turned off and always runs alongside it
Permissions / Access
I set permission to "None" but access is still possible
I set permission to "None" but access is still possible
- Whether the user’s role is Admin — admins have access regardless of group permissions
- Default permissions — the floor applied to everyone with the
userrole. If it’s open here, a group cannot lower it - Other groups — permissions from multiple groups are merged and the highest level wins. A group may also apply through organizational unit mapping
- If only the menu lingers on screen, refresh the page. Permissions are recalculated server-side on every request, so signing out and back in isn’t needed
I can't find the screen for assigning a guardrail to an organizational unit
I can't find the screen for assigning a guardrail to an organizational unit
The agent's tools don't use the KB selected via # in chat
The agent's tools don't use the KB selected via # in chat
# in chat, but the agent searches a different one or ignores that information.Cause: A Knowledge Base picked with # is added to the agent’s search targets — it does not narrow the search to that one. The AI chooses what it considers relevant, and searches everything connected when it isn’t sure.Fix:- To force a specific Knowledge Base, name it in your question, or use an agent that has only that Knowledge Base connected
- Items added with
#persist for the whole conversation. Check whether something from an earlier turn is still attached - Verify that you have read access to that Knowledge Base — without it, the entry is silently excluded from the tool list
- Verify that the Knowledge Base’s tool description isn’t empty (Workspace > Knowledge Base > (the knowledge base) > Tool description). For resources connected to an agent, the agent editor shows a “Tool description is missing” warning
Embeddings / Vector Search
A dimension error occurs after changing the embedding model
A dimension error occurs after changing the embedding model
- Leave Embedding Dimensions at
0(auto) — it is inferred from the model name. Enter a value manually only for self-hosted models whose names aren’t recognized - If you switched to a model with the same dimension, Admin > Settings > Documents > Danger Zone > Reindex Knowledge Base Vectors and its Reindex button resolves it. This runs across all Knowledge Bases at once, not one, and only an admin can run it
- If the dimension changed, reindexing does not resolve it: reindexing only deletes and re-adds documents, it does not rebuild the index
Intermittent errors with Azure Search Vector DB
Intermittent errors with Azure Search Vector DB
AZURE_SEARCH_OP_TIMEOUT and AZURE_SEARCH_BATCH_SIZE). If it persists:- For file indexing failures, check the failure markers in Knowledge Base detail > file list and run Retry failed files
- For chat response failures, look up the Chat ID or Message ID under Admin > Evaluation > Tracing to read the raw error message. There is no dedicated HTTP status code field, and file indexing failures are not recorded in tracing
- In high-concurrency environments, check the search service tier and replica count in the Azure portal
Email / Notifications
Cannot select 'Email' in scheduled task notifications
Cannot select 'Email' in scheduled task notifications
The scheduled task succeeded but no email arrived
The scheduled task succeeded but no email arrived
- Reopen the scheduled task, recheck the notification’s channel and recipients, and save
- Or have an admin re-register the channel under the same name
- If the channel is intact but mail still doesn’t arrive, an admin verifies the sender configuration with the [Test] button under Test Connection and the [Send] button under Send Test Email in the channel edit screen — these appear only after the channel has been saved and reopened
SMTP send fails with "Invalid domain name"
SMTP send fails with "Invalid domain name"
localhost as the EHLO domain, and this value cannot be changed by configuration. Therefore changing the container hostname to a FQDN will not fix it. Relax EHLO domain validation on the SMTP server, or use a relay with looser validation or a different send engine (SendGrid, Microsoft Graph).The guardrail blocked something but no reason is shown to the user
The guardrail blocked something but no reason is shown to the user
- Response (output) blocked — the reason is included in the message
- Prompt (input) blocked — only the guardrail name is shown, not the reason
Message and enter the text under Blocked Message. The workspace guardrail editor has no such option and offers only Strategy (block, redact, mask, hash, log).Operations / Deployment
Setting changes only apply to some workers in a multi-worker setup
Setting changes only apply to some workers in a multi-worker setup
- Redis is required for production — set the
REDIS_URLenvironment variable - The latest version improves config invalidation and bulk-import propagation
- See Deployment Checklist for details
Alembic migrations create tables in the wrong schema
Alembic migrations create tables in the wrong schema
DATABASE_SCHEMA environment variable, but tables are created in the public schema.Fix: Resolved in the latest version. If tables already exist in public, the order matters.- Take a full database backup
- Compare table lists and row counts in
publicand the target schema to find where the data lives. Analembic_versiontable may exist separately in each schema - If the data is in
public, move it to the target schema before considering any cleanup of the original - Set an explicit value such as
DATABASE_SCHEMA=appand re-run the migration - If startup reports
SCHEMA VERIFICATION FAILED, the target schema has no tables — the app will not start in this state, so no data is damaged
PoolError occurs during Knowledge Graph sync
PoolError occurs during Knowledge Graph sync
PoolError).Fix: Increase the AGE graph DB-specific pool size with the AGE_POOL_MAX environment variable (default 32). If PoolError keeps recurring, raise it one step and adjust AGE_POOL_MIN along with it. Follow the table in the deployment checklist for size-based recommendations.This pool is created once per worker (process), so total connections are worker count × AGE_POOL_MAX. Before raising it, check your budget against PostgreSQL’s max_connections and the other connection pools.See the “Size the AGE pool to your KG data volume” item in the Deployment Checklist.