Base44 Troubleshooter

作者 base448548a482f606无许可证90 个星标收录于 2026年10月8日更新于 2026年10月8日仓库今天更新

Troubleshoot production issues using backend function logs and workflow run history. Use when investigating app errors, debugging function calls, diagnosing why a scheduled job or automation failed, or diagnosing production problems in Base44 apps.

仅含说明DevOps & Cloud
AI 生成的概览

指导使用后端函数日志和工作流运行历史排查 Base44 生产问题。

功能
该技能提供了一套排查 Base44 应用生产问题的结构化流程。它说明了如何认证、确定应用上下文,并使用 CLI 命令实时跟踪函数日志、获取历史日志、列出工作流运行记录以及检查失败原因。它还涵盖如何解读空结果、日志延迟以及具有误导性的工作流元数据。
适用场景
适用于调查应用错误、调试函数调用、诊断定时任务或自动化失败原因,或排查 Base44 应用中的其他生产问题。
运行要求
需要通过 npx 使用 Base44 CLI、已认证的 Base44 账户以及对目标应用的访问权限。该技能仅为说明文档,不附带脚本。

Troubleshoot Production Issues

Prerequisites

Verify authentication before fetching logs:

bash
npx base44 whoami

If not authenticated or token expired, instruct user to run npx base44 login.

Resolve app context in one of these ways:

bash
# From a linked local projectcat base44/.app.jsonc
# Or explicitlynpx base44 logs --app-id app_123

Available Commands

CommandDescriptionReference
base44 logsFetch function logs for this appproject-logs.md [blocked]
base44 workflows runsList workflow runs, newest first; failed runs carry the failing task and the underlying errorworkflows-runs.md
base44 workflows listList this app's workflows with status and run summaryworkflows-list.md

Logs are not read-after-write

A single fetch that misses your run proves nothing. One-shot base44 logs reads an index that lags behind the invocation, so an empty result right after triggering a function is the expected result, not evidence of a problem.

  • Live debugging: use --follow. Where the realtime stream is available it delivers lines in under a second. Where it is not, the CLI says so and polls instead (Warning: Realtime logs are not available for this app — falling back to polling (lines may lag ~20-30s).). Either way --follow is the right tool — you never have to pick.
  • One-shot fetches lag ~20-30s. That is ingestion time, not a filter problem.
  • When output is empty, the variable to change is TIME, never a flag. Wait and re-run the same command. Widening --limit, dropping --level, or switching --order changes nothing about a line that has not been ingested yet, and re-rolling flags is how agents talk themselves into a wrong diagnosis.

Troubleshooting Flow

1. Watch it happen — --follow

If you can trigger the failure (or it is happening now), start here rather than fetching after the fact:

bash
npx base44 logs --follownpx base44 logs --follow --function <function_name>

Then invoke the function and read what arrives. Rules that keep you from misreading a healthy stream:

  • Never decide on a timer. Open the stream, trigger the function, and read until you see the lines — do not read a fixed window, print, and conclude "broken". A quiet stream is quiet because nothing has been invoked.
  • Delivery is per-invocation, not per-line. A long-running function's lines all arrive when the invocation ends. Silence mid-invocation is normal.
  • Redeploying mid-follow is safe. A deploy rotates the script in seconds and the same open stream delivers the new code's lines on the next invoke. Do not tear the stream down and rebuild it after every deploy.
  • --since is rejected with --follow (the stream starts from now), as are --until and --order. For anything historical, use a one-shot fetch.
  • The mode is decided once, at startup. If the first connection is refused or unreachable, the run polls for its whole life. If the stream opens, there is no polling fallback left.
  • A stream lost mid-run ends the command with Error: The realtime log stream stopped and could not be re-established, exit code 1. That exit is the stream giving up, not proof that logging is broken — re-run the same command rather than changing flags.

2. Ask whether it was a scheduled run, not a request

Workflows are the automation system — cron schedules, entity triggers, connector events, in-app agent actions. When the complaint is "my scheduled job didn't run" or "the automation stopped working", function logs are the wrong tool. They show what a function printed; they cannot tell you whether a run was dispatched at all, which task inside it failed, or why the workflow stopped firing.

bash
npx base44 workflows runs --status failednpx base44 workflows list

A failed run carries the failing task and the underlying error, so start there and drop into base44 logs only once you know which function a failing task called. workflows list reports consecutiveFailures — anything above zero is a workflow that needs attention.

Two things that mislead here:

  • manual in the trigger column does not mean a person clicked something. It is what a run is stamped with when it was dispatched with no trigger type at all.
  • Test runs are included, tagged next to the trigger type as (scheduled, test). A run you fired yourself to check something will show up in the list.

3. Check Recent Errors

Start by pulling the latest errors across all functions:

bash
npx base44 logs --level error

4. Drill Into a Specific Function

If you know which function is failing:

bash
npx base44 logs --function <function_name> --level error

If you are outside the project directory, pass the app explicitly:

bash
npx base44 logs --app-id app_123 --function <function_name> --level error

A --function filter is a filter on stamped rows. Apps still on the legacy per-function deployment emit unstamped rows, so a filtered view can hide them; this self-heals on the app's next deploy. If a filtered run comes back empty, re-run without --function before concluding there are no logs.

5. Inspect a Time Range

Correlate with user-reported issue timestamps:

bash
npx base44 logs --function <function_name> --since <start_time> --until <end_time>

6. Analyze the Logs

  • Look for stack traces and error messages in the output
  • Check timestamps to correlate with user-reported issues
  • Pass --limit explicitly to reach further back — there is no default page size, and a value above 500 is clamped down to 500

Reading an empty result

No logs found matching the filters. is ambiguous — never read it as "healthy". It means one of:

  • the run has not been ingested yet (most common — wait and re-run, see above)
  • no function by that name, or the filter dropped unstamped rows (see step 3)
  • the app has not been published, when reading --env prod (No production logs found. — try --env preview for draft logs)

来源与署名

来源:base44/skills位于skills/base44-troubleshooter提交8548a48

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架