Troubleshooting
Solutions to common issues.
Analysis Issues
Symbols Not Appearing Correctly
Cause: Debug symbols not included in ELF file.
Solution: Add -g flag to your compiler:
CFLAGS += -g
For GCC, ensure you're not stripping symbols:
# Don't use -s flag during linking
arm-none-eabi-gcc ... -o firmware.elf # Good
arm-none-eabi-gcc -s ... -o firmware.elf # Bad - strips symbols
CI/CD Issues
Build Fails During Onboarding
Cause: Historical commits may have different build requirements.
Solutions:
- Ensure all build dependencies are installed
- Check if build scripts changed over time
- Reduce
num_commitsto skip problematic history
Reports Not Uploading
Cause: Network or authentication issues.
Solutions:
- Verify API key is correct
- Test connectivity:
curl https://api.membrowse.com/health - Check CI logs for specific error messages
API Key Not Found
Cause: Secret not configured correctly in CI.
Solutions:
- GitHub Actions: Check Settings > Secrets > Actions
- GitLab CI: Check Settings > CI/CD > Variables
- Other CI: Check your CI system's environment variable or secrets configuration
- Verify secret name matches exactly (case-sensitive)
GitHub Actions Issues
Commit Message or Branch Not Displayed Correctly
Cause: GitHub Actions performs a shallow clone by default, which may not include enough Git history for metadata detection.
Solution: Add fetch-depth: 0 to the checkout step in your analyze job:
- uses: actions/checkout@v5
with:
fetch-depth: 0
PR Comments Not Appearing
Causes and Solutions:
-
Wrong workflow name in trigger:
# Ensure this matches exactly
on:
workflow_run:
workflows: [MemBrowse Memory Report] # Must match the other workflow's name -
Missing permissions:
permissions:
pull-requests: write
actions: read -
Fork PR: The two-workflow pattern is required for fork PRs
Workflow Not Triggering
Cause: Workflow file syntax error or wrong trigger.
Solutions:
- Validate YAML syntax
- Check trigger conditions:
on:
pull_request: # Triggers on PR
push:
branches: [main] # Triggers on push to main - Ensure workflow file is in
.github/workflows/
GitLab CI Issues
MR Comment Not Appearing
Causes and Solutions:
- Missing or invalid token: Ensure
MEMBROWSE_GITLAB_TOKENis set as a masked CI/CD variable withapiscope. A project access token with theReporterrole is recommended. - Comment job not running on MR pipelines: The comment job only runs on merge request pipelines. Check that your pipeline is triggered by
$CI_MERGE_REQUEST_IID. - Missing report artifact: The comment job depends on the analysis job's report artifact. Verify the analysis job completed successfully and that
needs:is configured correctly.
Duplicate Pipelines Running
Cause: Both a branch pipeline and a merge request pipeline trigger when pushing to a branch with an open MR.
Solution: Add $CI_OPEN_MERGE_REQUESTS == null to the branch rule on your build job:
rules:
- if: $CI_MERGE_REQUEST_IID
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS == null
See the GitLab CI Setup for a full example.
Analysis Job Fails with "ELF file not found"
Causes and Solutions:
- Ensure the build job is listed in
needs:on the analysis job - Verify the
artifacts: paths:in the build job includes the ELF file - Check that the
MEMBROWSE_ELFpath matches the actual build output
Self-Hosted GitLab Template Not Loading
Cause: The include: project: syntax requires the template project to be on the same GitLab instance.
Solution: Use the remote URL instead:
include:
- remote: 'https://gitlab.com/membrowse/gitlab-ci/-/raw/v1/membrowse.yml'
Architecture Issues
Unsupported Binary Format
Cause: MemBrowse currently supports only ELF binary format.
Solutions:
- Verify your file is in ELF format:
file firmware.elf - If your toolchain produces a different binary format, contact us to explain your use case and we will add support for it
Linker Script Parse Error
Cause: Non-standard linker script syntax.
Solutions:
- MemBrowse supports GNU LD linker scripts (
.ld) and IAR ICF files (.icf). Verify you are using one of these formats. - Check for syntax errors in linker script
- Try simplifying the MEMORY section
- Contact us with the linker script if you need help
Getting Help
If you can't resolve an issue:
- Check the GitHub Issues
- Request a demo to talk with the team