Skip to main content

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:

  1. Ensure all build dependencies are installed
  2. Check if build scripts changed over time
  3. Reduce num_commits to skip problematic history

Reports Not Uploading​

Cause: Network or authentication issues.

Solutions:

  1. Verify API key is correct
  2. Test connectivity: curl https://api.membrowse.com/health
  3. 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:

  1. Wrong workflow name in trigger:

    # Ensure this matches exactly
    on:
    workflow_run:
    workflows: [MemBrowse Memory Report] # Must match the other workflow's name
  2. Missing permissions:

    permissions:
    pull-requests: write
    actions: read
  3. Fork PR: The two-workflow pattern is required for fork PRs

Workflow Not Triggering​

Cause: Workflow file syntax error or wrong trigger.

Solutions:

  1. Validate YAML syntax
  2. Check trigger conditions:
    on:
    pull_request: # Triggers on PR
    push:
    branches: [main] # Triggers on push to main
  3. Ensure workflow file is in .github/workflows/

GitLab CI Issues​

MR Comment Not Appearing​

Causes and Solutions:

  1. Missing or invalid token: Ensure MEMBROWSE_GITLAB_TOKEN is set as a masked CI/CD variable with api scope. A project access token with the Reporter role is recommended.
  2. 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.
  3. 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:

  1. Ensure the build job is listed in needs: on the analysis job
  2. Verify the artifacts: paths: in the build job includes the ELF file
  3. Check that the MEMBROWSE_ELF path 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:

  1. Verify your file is in ELF format: file firmware.elf
  2. 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:

  1. MemBrowse supports GNU LD linker scripts (.ld) and IAR ICF files (.icf). Verify you are using one of these formats.
  2. Check for syntax errors in linker script
  3. Try simplifying the MEMORY section
  4. Contact us with the linker script if you need help

Getting Help​

If you can't resolve an issue:

  1. Check the GitHub Issues
  2. Request a demo to talk with the team