I use a similar model for EmailEngine (https://emailengine.app/). The code is dual-licensed under AGPL and a commercial license. The app has limited functionality by default - you can either buy a license key to activate it and use the app under the commercial license. Or fork the code, remove limitations (really easy to do, one or two lines of changes), and use it as AGPL. At first, I did not have that artificial limitation and no one was interested in buying the commercial license. Once I added that extra step, I got some customers.
Did you try to enforce the AGPL somehow? In the sense that the user that puts it on a (web)server must provide the end user the source code? (The 'A' in AGPL).
Not really. It's an application you install to your internal network and most probably do not make it accessible publicly. I have no way to know who and where has installed it. I assume that the app is forked in Github and the changes to disable license key check are also committed to that fork, so this would make it valid in terms of AGPL.
> It's an application you install to your internal network and most probably do not make it accessible publicly.
If people don't make it accessible publicly, then the AGPL isn't really imposing any obligations on them, even if they modify the code. It's unclear to me exactly when what you did would lead to someone paying when they otherwise wouldn't.
A lot of people do not care about licenses at all. No matter what you list as the license, they will do so if they can download and run it. Over the years, I have tried this multiple times where I provide the same code under a copyleft (free) license and commercial or permissive license (paid). Not a single time I've had anyone come to me and pay me to make it around the copyleft license. Any time someone has purchased the other option, it has been because of potential support options, etc.
So in EmailEngine, I added a license check. The code is always the same, but if you do not provide the license key (you need to pay to get that key), EmailEngine does not work correctly. Specifically, it stops processing email accounts after 15 minutes of runtime. You have to restart the application to get it functioning again. You would have to modify the source code to overcome this, but EmailEngine is distributed as a binary. To edit that code, you have to download it from Github, modify it and figure out how to run it. It's all straightforward, so it's not an obstacle for anyone with enough dedication. For others, it is easier to pay for the license key than to figure out how to circumvent it.