Activities of "enisn"

I delivered your report to the ABP Suite team currently,

They'll investigate and fix it.

There are a couple of version updates in 4 days: https://www.nuget.org/packages/Volo.Abp.Studio.Cli/0.9.25#versions-body-tab

But it supports only .NET9, so you cannot use it without .NET 9 runtime.

...Volo.Abp.Studio.Cli was working 4 days ago, then stopped today?

Probably you're using an older version that targets :NET8 and you couldn't update it since newer version cannot be installed. The older version were keep running on your system I think.

I checked on the nuget and it seems .NET 9 version is related 3 days ago: https://www.nuget.org/packages/Volo.Abp.Studio.Cli/0.9.24

And the last verison that can work with .NET8 is 0.9.23

Answer

Hi sghorakavi@cpat.com,

Thanks for reaching out with your issue. It sounds like there are a few possible areas we need to investigate to resolve the problem. Here are my suggestions:

Authentication Configuration

First, ensure that your ABP application’s authentication configuration exactly matches the settings in PingOne. This includes the Client ID, Client Secret, Authority URL, and Response Type. Misconfigurations here could lead to improper redirection behaviors.

Claim Mapping

Double-check the claim mapping in your ABP application. Ensure that user attributes from PingOne are being correctly translated and recognized by your ABP application. For example, make sure you have the correct mapping for the email claim as you've already started to do:

options.ClaimActions.MapUniqueJsonKey(ClaimTypes.Email, "email");

Debugging and Logs

Review the logs you provided. It appears there's an error with the tracking of the IdentityUserLogin entity. This usually happens when two instances of the same entity are being tracked simultaneously. To debug this issue:

  • Ensure that you are not inadvertently creating duplicate instances of the same entity.

  • Enable sensitive data logging in your DbContext options to get more detailed error information:

options.EnableSensitiveDataLogging();

Handling External Login Event

To handle the external login event correctly, you should ensure that once the user logs in via PingOne, the information is processed appropriately in the ABP system. Here's how you can handle the OnTokenValidated and OnUserInformationReceived events

options.Events = new OpenIdConnectEvents
{
    OnTokenValidated = context =>
    {
        // Add logic to handle when token is validated
        return Task.CompletedTask;
    },
    OnUserInformationReceived = context =>
    {
        options.ClaimActions.MapUniqueJsonKey(ClaimTypes.Email, "email");
        // Additional processing
        return Task.CompletedTask;
    }
};

Resolving Entity Tracking Issue

The InvalidOperationException regarding the IdentityUserLogin entity being already tracked suggests that there might be an issue with entity tracking in your application. You should ensure that only one instance of the entity is being tracked at any given time:

public async Task UpdateLoginAsync(UserLoginInfo loginInfo)
{
    var existingLogin = await _userManager.FindByLoginAsync(loginInfo.LoginProvider, loginInfo.ProviderKey);
    if (existingLogin != null)
    {
        // Detach the existing login to prevent tracking issues
        _dbContext.Entry(existingLogin).State = EntityState.Detached;
    }

    var newLogin = new IdentityUserLogin { LoginProvider = loginInfo.LoginProvider, ProviderKey = loginInfo.ProviderKey };
    await _dbContext.UserLogins.AddAsync(newLogin);
    await _dbContext.SaveChangesAsync();
}

This approach ensures that the existing login is detached before adding a new one to prevent tracking conflicts.

Verify Return URL

Ensure that the return URL is correctly set after successful authentication to guide the user to the intended login page rather than logging out.

If you follow these steps and still encounter issues, please provide more detailed logs, and we will continue troubleshooting from there.


You have to determine the problem in the application/configuration and then we can take an action for the solution.

Hi,

The first error:

Is related dotnet runtime mismatch. So that means, you don't have the target framework runtime of the CLI. You're on .NET 8, but CLI requires .NET9 etc. You can pass --version parameter. (You already did that)

The second error:

is multiple installed CLI. ABP moved to a new CLI named Volo.Abp.Studio.Cli. They both uses the same command name: abp. They cannot be installed at the same time since they conflict.

Here are my 2 suggestions:

Installing .NET 9 runtime

  • You can install .NET 9 runtime on your machine, to use Volo.Abp.Studio.CLi without a problem. https://dotnet.microsoft.com/en-us/download/dotnet/9.0

-- OR --

Installing old CLI

You can uninstall the new CLI and install the old one:

dotnet tool uninstall -g volo.Abp.Studio.Cli
dotnet tool update -g volo.abp.cli --version 8.3.4

Hi,

We received your ticket. Our Angular team will help you on this topic soon

Hi,

Is external providers are configured at your backend application? _Like below

If You're creating new application with ABP Studio, make sure this option is checked:

Hi

How can we specify which service tenant database a microservice should work with (e.g., Microservice_Tenant1_Products, Microservice_Tenant2_Products, etc.)?

Do you use micro-serivce template currently or you'll separate your services later? By default we don't suggest using different databases for tenants in the micro-service template currently, if you wish you can rea the discussion from here: https://abp.io/support/questions/8692/Problems-configuring-a-separate-database-for-each-tenant-in-a-microservices-application

If your template is not micro-service, you can customize MultiTenantConnectionStringResolver in your application

https://github.com/abpframework/abp/blob/74d516829be7f05cfae7d4a67f18591b41e5446a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs#L76-L79

using System;
using Microsoft.Extensions.Options;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy;

namespace AbpSolution1.AuthServer;

[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IConnectionStringResolver), typeof(DefaultConnectionStringResolver))]
public class MicroServiceConnectionStringResolver : MultiTenantConnectionStringResolver
{
    private readonly ICurrentTenant _currentTenant;
    private readonly IServiceProvider _serviceProvider;
    public MicroServiceConnectionStringResolver(IOptionsMonitor<AbpDbConnectionOptions> options, ICurrentTenant currentTenant, IServiceProvider serviceProvider) : base(options, currentTenant, serviceProvider)
    {
        _currentTenant = currentTenant;
        _serviceProvider = serviceProvider;
    }

    public override async Task<string> ResolveAsync(string? connectionStringName = null)
    {
        // ⚠️ Implement Your own logic, this is for demonstration
        var prefix = "Microservice";
        var postfix="Products";
        var tenant = _currentTenant.Name;

        // ...
        
        return $"Server=myServerAddress;Database={prefix}_{tenant}_{postfix};Trusted_Connection=True;"

    }
}

When we add new database migrations at the service, how should we handle them considering that each tenant has its own separate service database? how this migration will be applied to all service tenant dbs?

DbMigrator project applies migrations for all the tenants in the host database. So whenever you run DbMigrator, all the databases will be migrated and data seed will be executed

Hi @dzungle

Can you share the problem that you face? Our Angular team will help you on this topic

Answer

Thanks for reporting,

I'll deliver this issue to the ABP Suite team

Since it's a bug your ticket is refunded

Hi,

Out angular team will help you on this topic.

Until then, can I ask have you cleaned node_modules and remove yarn.lock/packages.lock file and install all the packages cleanly?

Showing 161 to 170 of 784 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 17, 2025, 07:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.