---
title: "FAQ and troubleshooting"
description: "Diagnose Ankole deployment, identity, model, Worker, and chat-channel failures from the symptom you can observe."
url: "https://ankole.agentbull.com/en-US/docs/faq/"
lang: "en-US"
---

> Documentation index for AI Agents: https://ankole.agentbull.com/en-US/llms.txt

# FAQ and troubleshooting

This page is not a product overview and does not repeat each provider setup guide. Find the earliest failed boundary, then select the relevant identity or chat provider. [Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md) remains the source of truth for installation and first-time setup.

## Find the failed boundary

| What you observe | Check first |
|---|---|
| `/setup` or the Console does not open | Deployment, control plane, DNS, and HTTPS |
| The Console opens, but sign-in fails or the directory is incomplete | Identity Provider (IdP) |
| The Agent works in the Console, but one IM gets no message | That Channel Provider and its signal routing rule |
| The IM message enters Ankole, but the Agent cannot generate a reply | LLM Provider, model profiles, and Worker |
| Only one platform fails | Select that Provider below; do not apply another platform's fix |

## Problems shared by all platforms

### What should I check when /setup or the Console does not open?

**Symptom**

The page times out, refuses the connection, returns 502, or stays blank. Provider setup has not started yet.

**Meaning**

The control plane is not healthy, or DNS, the reverse proxy, or the Ingress does not send traffic to it. Later Provider errors are usually consequences.

**Fix**

1. Check the control plane, PostgreSQL, and reverse proxy. Fix the first error in the logs.
2. If direct control-plane access works, check DNS, TLS, and the proxy target.
3. Do not delete the database or persistent volume. A startup failure does not prove data damage.

- [Check the deployment](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#deployment)
- [Read the logs](https://ankole.agentbull.com/en-US/docs/log-reading/index.md)

### Where is the activation code for first-time setup?

**Symptom**

/setup asks for the activation code, but the startup terminal is closed or the code is lost in the logs.

**Meaning**

The control plane uses this code only for first-time setup. It expires after the first administrator signs in.

**Fix**

1. If setup is not complete, select your deployment method in Quick start and use the log command in that tab.
2. Search for SETUP ACTIVATION CODE. Do not guess the code from browser storage or database rows.
3. If the instance already has a root administrator, sign in through the configured IdP instead of activating it again.

- [Read the activation code](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#deployment)

### Why is a selected adapter still missing from the Provider list?

**Symptom**

The plugin is saved as enabled, but its option does not appear in setup or on the identity or signal-routing page.

**Meaning**

First-time setup keeps all compiled plugins available and filters later configuration by the current saved selection. After setup, plugin changes saved in the Console apply at the next control-plane start.

**Fix**

1. If you are still in /setup, return to Plugins, save the selection, and open Administrator sign-in again. A restart is not required.
2. If setup is complete, restart only the control plane. Do not remove data or restart PostgreSQL. Confirm that the plugin is active, and return to the Provider page.
3. If the control plane does not start, fix the first plugin initialization error in its logs.

- [Enable Plugins in Agent Library](https://ankole.agentbull.com/en-US/docs/skills/index.md)

### No chat platform gets a reply. Is this still a channel problem?

**Symptom**

Channels, direct messages, and a second chat app all fail. A direct Agent conversation in the Console also fails.

**Meaning**

When the Console path also fails, the shared downstream path is the likely fault: the LLM Provider, Agent model profiles, or Worker, not one platform event permission.

**Fix**

1. Confirm that the LLM Provider is enabled and that its credential and model names work.
2. Confirm that the Agent has primary, light, and heavy profiles and that at least one Worker is ready.
3. Complete one real model conversation in the Console, then return to the selected chat-platform tab.

- [Configure the LLM Provider and Agent](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#3-add-an-llm-provider-and-create-an-agent)
- [Worker fleet](https://ankole.agentbull.com/en-US/docs/worker-management/index.md)

### A schedule did not run on time. What should I check first?

**Symptom**

The schedule exists, but it did not start at the expected time, or its next run does not match your expectation.

**Meaning**

The schedule can be disabled, the instance timezone or cron expression can be wrong, or the control plane was not running at trigger time.

**Fix**

1. Open the schedule, confirm that it is enabled, and inspect the displayed next run.
2. Check the instance timezone and cron expression. Use the time shown by the Console instead of estimating from the expression.
3. Select Run now. If it works, correct the time settings. If it fails, inspect the run record.

- [Configure and inspect schedules](https://ankole.agentbull.com/en-US/docs/schedules/index.md)

### A schedule ran. Why did no result arrive in chat?

**Symptom**

A run record exists, but the target chat or conversation did not receive an Agent message.

**Meaning**

The trigger worked. The fault is later in the path: the target route, Channel Provider, Agent models, or an available Worker.

**Fix**

1. Open the run record, confirm its outcome, and read the first error.
2. Check the target Agent, conversation or chat destination, and its signal routing rule.
3. Confirm that the Agent model profiles work and that at least one Worker is ready.

- [Inspect schedule runs](https://ankole.agentbull.com/en-US/docs/schedules/index.md)
- [Check signal routing rules](https://ankole.agentbull.com/en-US/docs/signal-bindings/index.md)

## Identity Provider troubleshooting

The IdP owns sign-in, contacts, and organization sync. Select the identity source that your enterprise uses. Slack Socket Mode, Entra ID Graph subscriptions, and Google Workspace full sync are different mechanisms and require different checks.

**Choose an identity provider**

- Slack
- Microsoft Entra ID
- Google Workspace
- Lark / Feishu
- DingTalk
- WeCom

### Slack

#### Slack sign-in fails during the authorization redirect

**Symptom**

Slack reports a redirect_uri mismatch before it returns to Ankole, or authorization returns to the wrong page.

**Meaning**

The Slack Redirect URL does not exactly match the callback shown by /setup, or Ankole contains a Client ID from another app.

**Fix**

1. Copy the full callback from /setup into OAuth & Permissions → Redirect URLs.
2. Compare the scheme, host, port, path, and Provider ID character by character.
3. Save the Slack app and start a new sign-in from Ankole. Do not reuse the old authorization page.

#### Slack sign-in works, but members or user groups are missing

**Symptom**

The administrator enters the Console, but Principals or permission groups are empty or miss recent members.

**Meaning**

The identity app lacks users:read, users:read.email, or team:read; its Bot User OAuth Token predates the new scopes; or the full sync has not run.

**Fix**

1. Add the identity scopes listed in Quick start.
2. After a scope change, install the app to the workspace again and save the new Bot User OAuth Token in the IdP.
3. Verify a full sync before you troubleshoot realtime sync.

#### Slack completes a full directory sync, but later changes stay stale

**Symptom**

The first sync has data, but member or user-group changes do not appear promptly.

**Meaning**

Realtime sync uses Socket Mode. The App-Level Token is missing, has the wrong prefix, Socket Mode is off, or the control plane cannot reach Slack.

**Fix**

1. Turn on Sync directory changes in the IdP and provide a valid App-Level Token.
2. Enable Socket Mode in Slack and allow outbound internet access from the control plane.
3. After App-Level Token rotation, update the value in Ankole and test a new directory change.

- [Configure the Slack IdP in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#2-set-up-the-identity-provider-first)

### Microsoft Entra ID

#### Microsoft sign-in reports AADSTS50011

**Symptom**

The Microsoft authorization page reports a reply URL mismatch, usually with error AADSTS50011.

**Meaning**

The Web Redirect URI in the Entra app registration does not exactly match the Ankole callback shown by /setup.

**Fix**

1. Copy the /setup callback into the app registration as a Web Redirect URI.
2. Check the scheme, host, port, path, and Provider ID. Do not use the Teams messaging endpoint here.
3. Wait for the portal change to apply, then start a new sign-in from Ankole.

#### Entra ID sign-in works, but directory sync is empty or returns 403

**Symptom**

The administrator can sign in, but Ankole has no users or permission groups. The logs can show a Graph 403.

**Meaning**

The app lacks Group.Read.All or User.Read.All, or the permissions exist but a tenant administrator has not granted consent.

**Fix**

1. Add the required Microsoft Graph Application permissions.
2. Ask a tenant administrator to select Grant admin consent. Adding a permission alone is not enough.
3. Run a full sync after consent and inspect Principals and permission groups.

#### Entra ID full sync works, but realtime changes do not arrive

**Symptom**

A later full sync repairs the data, but membership changes do not appear within minutes.

**Meaning**

Graph must reach the public HTTPS directory webhook. A bad Ankole public URL, unavailable ingress, or untrusted certificate prevents delivery.

**Fix**

1. Confirm that the public HTTPS address is reachable from the internet and uses a trusted certificate.
2. Check that Ankole public URL matches the real entry point. It defines the Graph notification URL.
3. Inspect subscription reconciliation logs and let the control plane rebuild the subscription after the entry point works.

- [Configure Entra ID in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#2-set-up-the-identity-provider-first)

### Google Workspace

#### Why does Ankole reject a valid Google account?

**Symptom**

Google authorization succeeds, but Ankole returns login_domain_not_allowed.

**Meaning**

The account domain is not in Allowed Workspace domains, the email is not verified, or the user has a consumer Gmail account without an hd claim.

**Fix**

1. Use an enterprise Google Workspace account, not a personal gmail.com account.
2. Confirm that the exact account domain is in Allowed Workspace domains.
3. Add more than one domain only when the enterprise operates a multi-domain Workspace.

#### Google sign-in works, but directory sync is empty or returns 403

**Symptom**

The administrator enters the Console, but no members or permission groups are synchronized.

**Meaning**

Directory sync uses the Service Account, not the OAuth Client. Domain-wide delegation, delegated scopes, or Delegated administrator email is usually wrong.

**Fix**

1. Enable Domain-wide delegation for the Service Account.
2. Grant the Directory API scopes from Quick start in the Workspace admin console.
3. Check Delegated administrator email and Service account JSON key, then run a full sync.

#### Why do Google Workspace member changes not appear at once?

**Symptom**

Ankole updates some time after a Workspace user or group change.

**Meaning**

The Google Workspace IdP currently supports full sync only. It has no realtime directory subscription. This delay is expected.

**Fix**

1. Wait for the next full sync. Do not expose a webhook for this Provider.
2. If the next sync also misses the change, check delegation, scopes, and Delegated administrator email.
3. Use an IdP with realtime directory sync when the business requires prompt updates.

- [Configure Google Workspace in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#2-set-up-the-identity-provider-first)

### Lark / Feishu

#### Lark or Feishu reports a callback mismatch during sign-in

**Symptom**

The authorization page does not open, or authorization cannot return to Ankole.

**Meaning**

Lark matches redirect_uri exactly. localhost and 127.0.0.1, different ports, and different Provider IDs produce different URLs.

**Fix**

1. Copy the full callback shown for this IdP in /setup.
2. Add it to the app security settings without rewriting the host or path.
3. Publish a version with the new setting and include the test user in the availability scope.

#### Lark or Feishu sign-in works, but employees or departments are missing

**Symptom**

The administrator enters the Console, but Principals and permission groups are incomplete.

**Meaning**

Directory permissions are incomplete, the app availability scope excludes the employees, or the new permissions are not in a published version.

**Fix**

1. Use the batch permission list in Quick start to add all directory read permissions.
2. Include the required departments and employees in the app availability scope.
3. Publish a new version and verify full sync before checking realtime sync.

#### Lark or Feishu full sync works, but employee changes stay stale

**Symptom**

The first sync has data, but later employee additions, moves, or removals do not appear promptly.

**Meaning**

Realtime sync uses the Lark long connection and directory events. Without the connection, subscriptions, or a published version, only full sync remains.

**Fix**

1. Keep the control plane running and select long connection under Events and callbacks.
2. Subscribe to the user and department change events from Quick start and publish the app.
3. Allow outbound access from the control plane. The long connection does not need public ingress.

- [Configure the Lark or Feishu IdP in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#2-set-up-the-identity-provider-first)

### DingTalk

#### DingTalk sign-in reports Application does not exist (900103)

**Symptom**

DingTalk reports 900103 as soon as the authorization page opens, before the callback after a code scan.

**Meaning**

DingTalk cannot find an available internal app for this Client ID. The value can be an AgentId or robotCode, or the app configuration can be unpublished.

**Fix**

1. Use the Client ID from Credentials and basic information, not AgentId, robotCode, or a group-robot webhook token.
2. Confirm that the app belongs to this enterprise and has the required sign-in and directory permissions.
3. Publish a new version and open a new authorization page from Ankole.

#### DingTalk reports a callback error only after the code scan

**Symptom**

The authorization page opens and accepts the code scan, but redirect_uri fails after consent.

**Meaning**

DingTalk checks the callback after consent. The registered URL does not exactly match the URL sent by Ankole.

**Fix**

1. Copy the full callback URL from /setup.
2. Register it under Development configuration → Security settings → Redirect URL.
3. Publish the version and start a new code scan. Do not reuse the old authorization page.

#### DingTalk directory sync reports 60011 or misses employees

**Symptom**

Sign-in works, but directory reads fail or omit members. Logs can contain sub-code 60011.

**Meaning**

User, department, or field read permissions are missing, or the app authorization scope excludes part of the organization.

**Fix**

1. Use the grant link from the error and the Quick start list to add all directory permissions.
2. Include the required departments and employees in the app authorization scope.
3. Publish a new version and run a full sync. Do not hide a permission error by changing page size.

- [Configure the DingTalk IdP in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#2-set-up-the-identity-provider-first)

### WeCom

#### WeCom sign-in or API calls report error 60020

**Symptom**

The QR scan does not return to Ankole, or saving the configuration reports an untrusted IP with code 60020.

**Meaning**

WeCom requires server calls to come from a registered trusted IP. The self-built app and Contacts sync each keep their own trusted-IP list, and a missing egress IP is rejected.

**Fix**

1. Give the Ankole deployment a fixed egress IP and add it to the self-built app trusted-IP list.
2. Add the same IP to the separate Contacts-sync trusted-IP list.
3. Confirm the sign-in redirect domain is a trusted domain of the self-built app.

#### WeCom sign-in works, but names or the whole directory are missing

**Symptom**

Members can enter the Console, but Principals have no names, or directory sync stays empty.

**Meaning**

Since June 2022 the ordinary app secret no longer returns member names and other profile fields. Sync requires the dedicated secret from Management tools → Contacts sync.

**Fix**

1. Enable Contacts API sync in the WeCom console and enter the dedicated secret in the Identity Provider.
2. Register a trusted IP for that secret as well.
3. WeCom sends no realtime directory events. Run a full sync after changes, or wait for the periodic sync.

- [Configure the WeCom IdP in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#2-set-up-the-identity-provider-first)

## Chat-channel troubleshooting

The chat channel receives IM messages and sends Agent replies. Select the platform in the routing rule. The platform used for the IdP does not change this choice.

**Choose a chat platform**

- Slack
- Microsoft Teams
- Lark / Feishu
- DingTalk
- WeCom

### Slack

#### The Slack routing rule rejects a token prefix

**Symptom**

Saving the channel returns invalid_token_prefix before a connection opens.

**Meaning**

The Bot Token and App Token are reversed, or one value is another Slack token type.

**Fix**

1. The Bot Token must start with xoxb- and come from OAuth & Permissions.
2. The App Token must start with xapp- and include connections:write.
3. Correct the values and save again. Do not troubleshoot events before credential validation passes.

#### Slack direct messages work, but channel mentions do not

**Symptom**

The bot answers a direct message, but an explicit @mention in a channel never reaches Ankole.

**Meaning**

The bot is not a channel member, or the app does not subscribe to app_mention with app_mentions:read.

**Fix**

1. Invite the bot to the test channel.
2. Add app_mention under Event Subscriptions and grant app_mentions:read.
3. After a scope change, install the app again and update the Bot Token in Ankole.

#### Slack delivers @mentions but not ordinary channel messages

**Symptom**

addressed_only works, but observe_all or may_intervene still sees only explicit mentions.

**Meaning**

The routing rule controls messages that Ankole receives. The Slack app still lacks the matching message event or history scope for that conversation type.

**Fix**

1. First verify the complete addressed_only path.
2. Add the message event and history scope for the target conversation type as shown in Quick start.
3. Install the app again, update the token, and then change the group-message mode.

- [Configure the Slack channel in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#4-connect-a-chat-channel-and-create-its-signal-routing-rule)

### Microsoft Teams

#### Teams sends a message, but Ankole receives nothing

**Symptom**

Teams shows no reply, and the control plane has no matching inbound activity.

**Meaning**

Teams delivers Bot Framework webhooks. A private endpoint, untrusted certificate, or wrong path prevents the request from reaching Ankole.

**Fix**

1. Give the instance a public HTTPS address with a trusted certificate.
2. Set the Bot Framework Messaging endpoint to the exact Teams webhook URL from Quick start.
3. Confirm that the bot app is installed for the test user, team, or channel.

#### Teams reaches Ankole, but sending the reply fails authentication

**Symptom**

The control plane receives the activity, then returns 401, 403, or a bot-token error when it sends the reply.

**Meaning**

appID, appPassword, tenantID, or botTenancy does not match the Azure Bot registration.

**Fix**

1. Confirm that appID is the application GUID and appPassword is an unexpired Client Secret value.
2. Use single_tenant and the enterprise tenantID for a single-tenant app.
3. Use multi_tenant only when the Azure Bot registration supports it.

#### Teams personal chat works, but a channel @mention does not

**Symptom**

The same bot answers in personal chat but receives no channel message.

**Meaning**

The app is not installed in that team or channel, or the message does not mention the bot as Teams expects.

**Fix**

1. Install the app in the target team and allow it in the target channel.
2. Use an explicit @mention for the first test.
3. Confirm that the routing rule is enabled and targets the intended Agent.

- [Configure the Teams channel in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#4-connect-a-chat-channel-and-create-its-signal-routing-rule)

### Lark / Feishu

#### The Lark or Feishu bot exists, but no message gets a reply

**Symptom**

Neither direct messages nor group @mentions reach Ankole.

**Meaning**

The bot capability, published version, availability scope, long connection, or im.message.receive_v1 is not active.

**Fix**

1. Enable the bot, include the test user in the app scope, and publish the latest version.
2. Select long connection under Events and callbacks and subscribe to im.message.receive_v1.
3. Keep the control plane running with outbound access. The connection does not need a public webhook.

#### Lark or Feishu delivers @mentions but not ordinary group messages

**Symptom**

addressed_only works, but observe_all or may_intervene cannot see messages that do not mention the bot.

**Meaning**

The app lacks im:message.group_msg. A routing rule cannot read a message that the platform does not deliver.

**Fix**

1. Verify the addressed_only path first.
2. Add im:message.group_msg under Permissions and publish a new version.
3. Confirm the app scope covers the group members, then change the group-message mode.

#### Lark or Feishu receives the message, but the reply or card update fails

**Symptom**

The Agent starts work, but the IM has no final reply or the card stays in an old state.

**Meaning**

The chat app lacks permission to send messages, update messages, or read message resources, or the new permissions are unpublished.

**Fix**

1. Add the send, update, and resource permissions from Quick start.
2. Publish the app and confirm that the bot remains in the conversation.
3. Send a new message in the same conversation. Do not use an old failed turn to test new permissions.

- [Configure the Lark or Feishu channel in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#4-connect-a-chat-channel-and-create-its-signal-routing-rule)

### DingTalk

#### Is it a fault when DingTalk ignores group messages without an @mention?

**Symptom**

Direct messages and explicit @mentions can start the Agent, but ordinary group messages never enter Ankole.

**Meaning**

No. As of July 2026, DingTalk delivers only group messages that explicitly mention the bot and does not expose the complete group history to the Agent.

**Fix**

1. Use an explicit @mention for every group test and keep the mode on addressed_only.
2. Use Slack, Teams, or Lark/Feishu when the Agent needs continuous group context.
3. Do not select observe_all. Ankole cannot recover messages that DingTalk does not deliver.

#### DingTalk replies stay plain Markdown. How do I get streaming cards?

**Symptom**

The Agent replies, but every message is plain text without the streaming AI card.

**Meaning**

DingTalk cards are template-hosted. Replies stay plain Markdown when cardTemplateId on the routing rule is empty, the template is not published to the app that owns the robot, or DingTalk rejected the card content.

**Fix**

1. Build the AI card template as shown in the advanced section of the DingTalk tab in Quick start, and paste its id into cardTemplateId on the routing rule.
2. When a card is blank, make sure the current input, completed, or failed layout has a Markdown component bound to answer, and publish the template again. Do not create flowStatus or flowStatusVar.
3. A reply that arrives once as a card and later as plain text is the intended fallback after a permanent rejection. The reply is still delivered; check the control-plane logs for param.contentUnsafe or param.cardNotExist.

- [Build the DingTalk AI card template in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#4-connect-a-chat-channel-and-create-its-signal-routing-rule)

#### The DingTalk Stream connection receives no messages

**Symptom**

The routing rule is enabled, but neither direct messages nor explicit @mentions reach Ankole.

**Meaning**

Mismatched credentials, an unpublished bot, or an app scope that excludes the test user can stop the Stream connection or delivery.

**Fix**

1. Check the Client ID and Client Secret of the chat app. Do not reuse the IdP app credentials by accident.
2. Enable and publish the bot, and include the test user in its scope.
3. Allow outbound access from the control plane. The Stream connection does not need a public webhook.

#### Why can the same DingTalk app not connect to a second Agent?

**Symptom**

A second routing rule is rejected, or another Agent already uses the same Client ID.

**Meaning**

The current adapter allows one Client ID for one Agent. Each Agent can also have only one enabled DingTalk route.

**Fix**

1. Create another internal DingTalk app when the second Agent needs a separate bot identity.
2. Use its new Client ID and Client Secret in a new routing rule.
3. If you only want to change the target Agent, disable the old route before you enable the new one.

### WeCom

#### Is it a fault when WeCom ignores group messages without an @mention?

**Symptom**

Direct messages and explicit @mentions can start the Agent, but ordinary group messages, group images, and group files never enter Ankole.

**Meaning**

No. WeCom delivers only direct messages and group messages that explicitly @-mention the AI bot, and group @-messages carry only text and mixed text-image content.

**Fix**

1. Use an explicit @mention for every group test. The only group mode is addressed_only.
2. Use Lark/Feishu, Slack, or Teams when the Agent needs complete group context or files shared in groups.

#### Scheduled reminders never arrive in WeCom

**Symptom**

The Agent replies when a user writes first, but proactive messages such as schedule results are not delivered.

**Meaning**

WeCom requires the user to message the bot in that conversation first. The Agent cannot start a fresh conversation.

**Fix**

1. Have each recipient send the bot one message first to unlock proactive delivery for that conversation.
2. The reply window after an inbound message is 24 hours; after that only the proactive path remains.

#### The WeCom connection keeps dropping, or chat identities never match the directory

**Symptom**

The connection opens and then drops, or chat users can never join directory and sign-in identities.

**Meaning**

The platform allows exactly one long connection per bot, so another program with the same Bot ID kicks the connection. A bot that was not created by a corp super administrator delivers encrypted user ids.

**Fix**

1. Make sure no other program uses the same Bot ID. When Ankole gets kicked, it parks and waits instead of fighting for the line.
2. The bot must be created by a corp super administrator; otherwise delete it and recreate it with a super administrator account.

- [Configure the WeCom channel in Quick start](https://ankole.agentbull.com/en-US/docs/quickstart/index.md#4-connect-a-chat-channel-and-create-its-signal-routing-rule)

## If the failing boundary is still unclear

Reproduce the fault once. Record the exact time, Agent UID, routing-rule name, Provider, and full error shown by the interface. Then collect only the control-plane and Worker logs around that time, and find the first error by event name.

Do not send a Client Secret, Bot Token, App Token, model API key, full environment dump, or unredacted configuration file. When you report an issue, include redacted logs and exact reproduction steps instead of a complete log archive.

- [Read Ankole logs](https://ankole.agentbull.com/en-US/docs/log-reading/index.md)
