name: 🐛 Bug report
description: Unexpected program behaviour that requires code correction
labels: ["🐛 Bug", "👀 Evaluation"]
body:
  - type: checkboxes
    id: checklist
    attributes:
      label: Checklist
      description: Ensure that our bug report form is appropriate for you.
      options:
        - label: I read and understood ASF's **[Contributing guidelines](https://github.com/JustArchiNET/ArchiSteamFarm/blob/main/.github/CONTRIBUTING.md)**
          required: true
        - label: I also read **[Setting-up](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Setting-up)** and **[FAQ](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/FAQ)**, I don't need **[help](https://github.com/JustArchiNET/ArchiSteamFarm/blob/main/.github/SUPPORT.md)**, this is a bug report
          required: true
        - label: This is not a **[duplicate](https://github.com/JustArchiNET/ArchiSteamFarm/issues?q=is%3Aissue)** of an existing issue
          required: true
        - label: I don't own more than **[10 accounts in total](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/FAQ#how-many-bots-can-i-run-with-asf)**
          required: true
        - label: I'm not using **[custom plugins](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Plugins)**
          required: true
        - label: This is not a **[question](https://github.com/JustArchiNET/ArchiSteamFarm/discussions)**
          required: true
        - label: This is not a **[technical issue](https://github.com/JustArchiNET/ArchiSteamFarm/discussions)**
          required: true
        - label: This is not **[ASF-ui problem](https://github.com/JustArchiNET/ASF-ui/issues/new/choose)**
          required: true
  - type: dropdown
    id: version
    attributes:
      label: ASF version
      description: If you're using a different version than the current **[stable](https://github.com/JustArchiNET/ArchiSteamFarm/releases/latest)** or **[pre-release](https://github.com/JustArchiNET/ArchiSteamFarm/releases)**, ensure that your bug report is reproducible on one of the below.
      options:
        - Latest stable release
        - Latest pre-release
    validations:
      required: true
  - type: dropdown
    id: variant
    attributes:
      label: ASF variant
      description: If you're using a different variant, ensure that your bug report is reproducible on one of the below.
      options:
        - docker-linux/amd64
        - docker-linux/arm/v7
        - docker-linux/arm64
        - generic (with latest .NET runtime)
        - linux-arm
        - linux-arm64
        - linux-x64
        - osx-arm64
        - osx-x64
        - win-arm64
        - win-x64
    validations:
      required: true
  - type: textarea
    id: bug-description
    attributes:
      label: Bug description
      description: Short explanation of what you were going to do, what did you want to accomplish?
      placeholder: |
        I tried to brew a coffee with ASF using `PUT /Api/Coffee` ASF API endpoint, but upon trying the program returned HTTP error: 418 I'm a teapot.
    validations:
      required: true
  - type: textarea
    id: expected-behavior
    attributes:
      label: Expected behavior
      description: What did you expect to happen?
      placeholder: |
        I expected my favourite latte macchiato in a cup put below the machine hosting ASF.
    validations:
      required: true
  - type: textarea
    id: actual-behavior
    attributes:
      label: Actual behavior
      description: What happened instead?
      placeholder: |
        No coffee was brewed, and so I was forced to use a water dispenser instead :/.
    validations:
      required: true
  - type: textarea
    id: steps-to-reproduce
    attributes:
      label: Steps to reproduce
      description: |
        Every command or action that happened after launching ASF, which leads to the bug.
        If launching ASF with provided configs (below) is everything that is needed, then this section is not mandatory.
        Screenshots of the problem and/or steps leading to it could be very useful in particular.
      placeholder: |
        1. Put cup below the machine hosting ASF.
        2. Send `PUT /Api/Coffee` request selecting latte macchiato.
        3. No coffee was brewed.
  - type: textarea
    id: possible-solution
    attributes:
      label: Possible reason/solution
      description: |
        Not mandatory, but you can suggest a fix/reason for the bug, if known to you.
        If you observed something peculiar about your issue that could help us locate and fix the culprit, this is the right place.
      placeholder: |
        Perhaps no coffee was brewed because I was out of milk?
  - type: dropdown
    id: help
    attributes:
      label: Can you help us with this bug report?
      description: |
        ASF is offered for free and our resources are limited.
        Helping us increases the chance of fixing the problem.
      options:
        - Yes, I can code the solution myself and send a pull request
        - Somehow, I can test and offer feedback, but can't code
        - No, I don't have time, skills or willings for any of that
    validations:
      required: true
  - type: textarea
    id: asf-log
    attributes:
      label: Full log.txt recorded during reproducing the problem
      description: |
        You can find `log.txt` file directly in ASF directory.
        If the bug report doesn't come from the last run of the program, you can find logs from previous runs of the program in the `logs` directory instead.
        If no `log.txt` was recorded due to crash at the very early stage, console output should be pasted instead.
      placeholder: |
        2021-12-16 00:20:43|dotnet-282887|INFO|ASF|InitCore() ArchiSteamFarm V5.2.1.2 (generic/6b492ffa-9927-431d-bae7-7360ab9968a9 | .NET 6.0.0-rtm.21522.10; debian-arm64; Linux 5.15.0-1-arm64 #1 SMP Debian 5.15.3-1 (2021-11-18))
        2021-12-16 00:20:43|dotnet-282887|INFO|ASF|InitCore() Copyright © 2015-2021 JustArchiNET
        2021-12-16 00:20:47|dotnet-282887|INFO|ASF|InitPlugins() Initializing Plugins...
        2021-12-16 00:20:47|dotnet-282887|INFO|ASF|InitPlugins() Loading SteamTokenDumperPlugin V5.2.1.2...
        2021-12-16 00:20:47|dotnet-282887|INFO|ASF|InitPlugins() SteamTokenDumperPlugin has been loaded successfully!
        2021-12-16 00:20:47|dotnet-282887|INFO|ASF|UpdateAndRestart() ASF will automatically check for new versions every 1 day.
        2021-12-16 00:20:52|dotnet-282887|INFO|ASF|Update() Checking for new version...
        2021-12-16 00:20:54|dotnet-282887|INFO|ASF|Update() Local version: 5.2.1.2 | Remote version: 5.2.1.2
        2021-12-16 00:20:54|dotnet-282887|INFO|ASF|Load() Loading STD global cache...
        2021-12-16 00:20:56|dotnet-282887|INFO|ASF|Load() Validating STD global cache integrity...
        2021-12-16 00:20:56|dotnet-282887|INFO|ASF|OnASFInit() SteamTokenDumperPlugin has been initialized successfully, thank you in advance for your help. The first submission will happen in approximately 47 minutes from now.
        2021-12-16 00:20:57|dotnet-282887|INFO|ASF|Start() Starting IPC server...
        2021-12-16 00:20:59|dotnet-282887|INFO|ASF|Start() IPC server ready!
      render: text
    validations:
      required: true
  - type: textarea
    id: global-config
    attributes:
      label: Global ASF.json config file
      description: |
        The config can be found in `config` directory under `ASF.json` name.
        You can leave this field empty if not using one.

        Ensure that your config has redacted (but NOT removed) potentially-sensitive properties, such as:
        - IPCPassword (recommended)
        - LicenseID (mandatory)
        - SteamOwnerID (optionally)
        - WebProxy (optionally, if exposing private details)
        - WebProxyPassword (optionally, if exposing private details)
        - WebProxyUsername (optionally, if exposing private details)

        Redacting involves replacing sensitive details, for example with stars (***). You should refrain from removing config lines entirely, as their pure existence may be relevant and should be preserved.
      placeholder: |
        {
          "AutoRestart": false,
          "Headless": true,
          "IPCPassword": "********",
          "UpdateChannel": 2,
          "SteamTokenDumperPluginEnabled": true
        }
      render: json
  - type: textarea
    id: bot-config
    attributes:
      label: BotName.json config of all affected bot instances
      description: |
        Bot config files can be found in `config` directory, ending with `json` extension.
        You can leave this field empty if you don't have any defined.

        Ensure that your config has redacted (but NOT removed) potentially-sensitive properties, such as:
        - SteamLogin (mandatory)
        - SteamPassword (mandatory)
        - SteamMasterClanID (optionally)
        - SteamParentalCode (optionally)
        - SteamTradeToken (optionally)
        - SteamUserPermissions (optionally, only SteamIDs)

        Redacting involves replacing sensitive details, for example with stars (***). You should refrain from removing config lines entirely, as their pure existence may be relevant and should be preserved.
      placeholder: |
        {
          "Enabled": true,
          "SteamLogin": "********",
          "SteamPassword": "********"
        }
      render: json
  - type: textarea
    id: additional-info
    attributes:
      label: Additional info
      description: Everything else you consider worthy that we didn't ask for.
  - type: markdown
    attributes:
      value: |
        ---
        #### Thank you for taking the time to fill out this bug report.
