Submitting useful bug reports

Forbo edited this page Oct 3, 2018 · 22 revisions

First, thank you many times over for taking the time to file a bug. For the report to be most effective, we've noticed the following characteristics help us get to a solution the fastest.

TL;DR example issue

Title: Signal messages jiggle in conversation list

Bug description

Every time there's a food commercial my messages start jiggling.

Steps to reproduce

  • Open Signal
  • Go to the main conversation list
  • A commercial about food comes on the television in the other room

Actual result: Signal messages start to jiggle in the conversation list for a couple seconds.

Expected result: Nothing should happen. Messages should just stay as they are.

Screenshots

signal jiggle

Device info

Device: LG Nexus 4

Android version: stock Android 5.1.1

Signal version: 3.15.0

App state

Signal messages and calls registered, SMS disabled, passphrase enabled

Link to debug log

https://debuglogs.org/2488708be425d005221703ff268214942480a2b4a7b856f30a63326b803144d1

Characteristics

Search, search, search

Before submitting a new issue please search if someone has already opened an issue about the same topic. Don't forget to search for both open and closed issues as GitHub only searches for open issues by default. (You may also wish to check out GitHub's help article about search to get more accurate results.)

Come up with a concise and descriptive title

A good title summarizes the issue in a few words and makes it easily searchable. There's no need to use tags such as "[Feature]" in the titles. Speaking of search: Did you try searching duplicate issues by using your title as search keywords?

Try to reproduce the bug

The developers need to see the bug in order to fix it. Try to find the exact conditions and steps that trigger the bug and add them to your issue report. Ideally, the developers can follow your steps and recreate the bug on their own device.

Capture a debug log

The debug log describes what Signal was doing while it was running. If you capture a debug log immediately after a bug occurs, the developers can use the log to see exactly what was going on in your installation of Signal. Even in the case where you know the exact steps that cause the bug on your device, that doesn't guarantee that the same steps will cause the bug on the developer's device. It is always helpful to add a debug log to your issue report.

How to capture a debug log

  1. Immediately after the bug has happened go to Signal Settings -> Advanced -> Submit debug log
  2. Tap Submit to generate a URL link for the log
  3. Copy the link and paste it in your issue report

Note: If you are using a passphrase and the bug appears before you can successfully unlock the app, you can capture a debug log directly via the menu in the passphrase screen. You can also capture debug logs with adb if you cannot access any of Signal's debug log menus.

Debug log privacy

Debug logs captured within Signal are stripped of personal information. However, please note that the last two digits of phone numbers may be visible in the logs (e.g. +1 555 867 5309 will show as +*********09). This is to help differentiate between contacts when analyzing a log.

Add a screenshot

Sometimes a picture is worth a thousand lines of debug logs, but this doesn't mean that you shouldn't add a debug log too :). If the problem is visual and difficult to describe, a screenshot can go a long way. Different Android vendors have different ways of taking screenshots. Please check how to do it on your specific device. Usually it's a combination of pressing the volume buttons and power button at the same time.

You may need to toggle the Screen security option in Signal's Privacy settings before taking a screenshot.

Device and app information

  • What's your device?
  • What Android version is it running?
  • What version of Signal do you have?

App state

  • What are the relevant preferences that you have set that may be related to the issue? Some examples:
    • Registration state for Signal messages and calls
    • MMS settings
    • Passphrase
    • Theme
    • Message trimming
  • If this is a bug involving a second party, what's their device/app info and app state?

Finished!

Congratulations! You are done. You have achieved the badge: Creator of Glorious Bug Reports!:sparkles:

Now you can submit your report. Thanks for your help!


Advanced capturing

Here are some advanced ways to get more information from your device.

Debug logs with adb
adb logcat

Capturing raw log data with adb may expose private information like phone numbers. Please review your adb debug logs before submission.

Screenshots with adb
adb shell /system/bin/screencap -p /sdcard/screencap.png && adb pull /sdcard/screencap.png
Video (only for Android 4.4 and up)

A small video or gif can be helpful if the problem is visual and difficult to describe.

adb shell screenrecord /sdcard/screenrecord.mp4

Then pull it from the device.

adb pull /sdcard/screenrecord.mp4
Animated gifs

If you have ffmpeg and imagemagick, you can quickly convert a video into an animated gif:

ffmpeg -i screenrecord.mp4 -r 10 screenrecord%05d.png
convert screenrecord*.png screenrecord.gif
rm screenrecord*.png
Manually making an Animated gif
mkdir tmpScreens
cd tmpScreens
# perform as many screenshots as you need to string together the animated gif:
adb shell screencap -p | perl -pe "s/\x0D\x0A/\x0A/g" > adb-screenshot-`date +%s`.png
convert -delay 70 -loop 0 adb-screenshot-*.png anim.gif
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.