TouchBar Labels sometomes show incorrectly. (seen on large presets, maybe import issue)

Describe the bug
Sometimes users who download presets get incorrectly formatted layouts.

Affected input device: TouchBar

Device information:

  • Type of Mac: Unknown, Customers Macs.
  • macOS version: Unknown, Customers Macs.
  • BetterTouchTool version: Unknown, Customers Macs. Likley 2.641+

Additional information (e.g. StackTraces, related issues, screenshots, workarounds, etc.):
I've not experienced this issue myself. From the screenshots that users provided, it seems like formatting has been incorrectly imported. The downloaded files are not corrupted when I download them.

Change parameters seem to be:
Icon Size
Background Color
Spacing (inside trigger)
Maybe spacing after button too.

Additionally, Gesture widgets seem to be converted to normal triggers, displayed in the touch bar as in Maneesh_K's screenshot.

@GoldenChaos, @Andreas_Hegenberg, @tergiversation, this relates to you.

fwiw, this issue seems to happen more commonly on fresh BTT installations. Everyone reporting the issue seems to be a first-time user. Anecdotally, I went to an Apple Store and tried to install GC-BTT there and got this issue.

Perhaps it's related to BTT not having accessibility permissions? I wasn't able to enable those on the in-store MBP.

1 Like

I ran into this same issue when trying to install BTT and GC-BTT, both as fresh installs, on a MacOS Mojave machine. The issue appears to be related to some sort of import issue with presets. To finally get GC-BTT working, I had to download both the latest alpha and stable of GC-BTT, and import/delete them alternatively a couple of times via the BTT UI.

Not sure what the issue is, but if this affects multiple community presets, then I would guess that this is a BTT bug, rather than a GC-BTT bug.

BTW, thanks to all for working on BTT and GC-BTT!!

2 Likes

I’ve had issues without presets, though this may be a separate problem:

As far as I know this can happen when the Apple Script execution engine crashes or when BTT does not get the correct permissions to execute specific Apple Script functionality. Usually a BTT restart will solve it, but sometimes the issue is not within BTT's context, but in the system context. In this case a system restart may be required.

When running Mojave, make sure BTT has all the requested permissions in System Preferences => Security & Privacy => Automation.

1 Like

Aha! That makes sense. I'll make sure to note this when I write the FAQ since a lot of folks had been struggling with this one.

I just had this issue and mentioned it in this post:
https://community.folivora.ai/t/help-so-btt-is-kinda-breaking-down-license-lost-help-needed-too/6422/2

Continuing from that context:
Restarted the laptop just now, and it didn't disappear.

I just checked and it seems BTT corrupts the preset itself, it isn't a display issue.

In the screenshot below, all red-crossed elements are corrupt, while green is OK. If it's not marked, I don't remember setting it.

In regards to when it happens, I installed my preset into a clean BTT install, and it worked fine. I called it a day then when I came back, (computer slept for a long time), it happened.

Interesting, did you import the preset from a JSON file?
And you say it worked first, then stopped working?

Yes, it was an exported file that is uncompressed.

It did work then stopped working. I'm not sure if BTT restarted when it stopped or not, but there is a high chance that it did.

That probably means the changes haven't been saved to the persistent database correctly (or only partially) after the import (so after a restart it wasn't visible anymore).
Maybe some sort of exception occured during the import.

It would be great if you'd go to About => Export Debug Information to Desktop and send me the BetterTouchToolDebug folder from your Desktop to andreas@folivora.ai, maybe the log still contains some info (probably too late, but may still be helpful)

Would be cool to figure out what causes this issue.

1 Like

I just got a new 2018 MBP (True Tone time!!) and I encountered this issue while setting up BTT for the first time. Resetting (not uninstalling) the app with CleanMyMac (or similar app zapping tool) fixed the issue! So I guess it wasn't a permissions issue.

It happened after i uninstalled with an app zappr though...

wait you said resetting, nvm

Ah maybe that''s key to the issue, both of you had completely empty BTT instances without any configuration? Correct?

Yes, that seems to be the commonality! This would also explain why new users are the ones who always report the issue.

Not really for me:

  1. I did a complete uninstall, including BTT’s backend files.

  2. I reinstalled BTT from the site, I didn’t even license it or switch on alpha

  3. I imported my own preset (this worked fine)

  4. I imported other presets as well as my corrupt preset which had some changes. (also worked fine)

  5. I set the preset from step two as my master, and set general touchbar settings to match.

  6. A goodnight from me, just closed the lid on the laptop

  7. Woke up, and logged in, and then saw the grey bar issue...

Its kind of related since I did do a new install but it didn’t happen instantly.

The issue is most likley related to:
Clean BTT installs importing large presets as one of the first presets

I can finally reproduce the issue! :partying_face:
More info & fix soon :slight_smile:

2 Likes

:partying_face: :partying_face: :partying_face:

So this was the issue:

On start BetterTouchTool checks whether the database has been upgraded to the schema used in the latest version. (Tables may be different on older versions etc.)
If BTT detects that a specific database has not been updated yet, it will try to do that and transform the data from the old format to the new format.
Unfortunately there was a bug that caused the "Touch Bar Format Migration Successful" flag to not being set if no Touch Bar trigger was setup before BTT started.

Now if you start BTT and import the JSON, it will already be in the correct format. However because the flag was not set, it will try to upgrade the database on next restart. This caused some data to be overridden.

This is fixed in v2.698, which I already made the default when downloading from my website. I'll not push it as an update for now, as existing users shouldn't usually be affected (unless they reset everything).

And because @yuuiko didn't restart during all the steps, it only happened after waking from sleep (where BTT restarts automatically)

2 Likes

Coincidentally, I got my old laptop back from service today. Free keyboard and display replacement :sunglasses: I'm keeping it as a secondary machine with a fresh install of macOS! I'm realizing it's nice to have a backup.

Anyways, I just set up BTT here and encountered no issues. So cheers!