Unable to Create Authorization Role Fixture When Using Magento\Authorization\Test\Fixture\Role in DB-Isolated Tests (DbIsolation = true)
Summary
When creating a role using the Magento\Authorization\Test\Fixture\Role fixture inside an isolated integration test (@magentoDbIsolation enabled), the test fails with the following error:
Could not create an acl object: Parent Role id "1" does not exist
The fixture attempts to reference a parent role ID that does not exist in a clean DB context. Because DB isolation wipes all default roles at test bootstrap, the fixture cannot resolve the parent role and fails. This blocks writing isolated integration tests involving custom ACL roles.
This issue impacts developer experience, as authorization fixtures cannot be used reliably in isolated test scenarios.
Examples
Failing Example (Current Behavior)
#[
DataFixture(RoleFixture::class, ['resources' => ['Magento_Customer::manage']], as: 'role'),
DbIsolation(true),
AppIsolation(true)
]
public function testCustomRoleCreation()
{
$this->assertTrue(true);
}
Result:
Could not create an acl object: Parent Role id "1" does not exist
Expected Behavior
The fixture should not assume the presence of predefined roles (e.g., parent_id = 1). It should either: create its own parent role automatically, or allow bypassing the parent role requirement, or fail gracefully with a clear error message + guidance. This would make the fixture consistent with how other fixtures behave in isolated mode.
Proposed solution
- Option A — Automatically create missing parent role
When parent_id is specified but does not exist in the isolated DB, the fixture should create a temporary parent role before creating the child.
- Option B — Allow parent_id = null or omit it
Update the fixture to make parent_id optional. If omitted:
. create the role without a parent, or . assign it to a default root ACL node.
- Option C — Improve error message + documentation
If automatic creation is not desired:
Throw a descriptive error explaining that default roles do not exist in isolated mode. Document this behavior in Developer Experience docs.
- Option D — Provide a “base admin role” fixture
Add a new fixture (e.g., Magento\Authorization\Test\Fixture\BaseAdminRole) that sets up the minimum ACL tree necessary for dependent fixtures.
Release note
No response
Triage and priority
- [ ] Severity: S0 - Affects critical data or functionality and leaves users without workaround.
- [ ] Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
- [x] Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
- [ ] Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
- [ ] Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.
Hi @mimou78. Thank you for your report. To speed up processing of this issue, make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce.
- For more details, review the Magento Contributor Assistant documentation.
- Add a comment to assign the issue:
@magento I am working on this - To learn more about issue processing workflow, refer to the Code Contributions.
Join Magento Community Engineering Slack and ask your questions in #github channel. :warning: According to the Magento Contribution requirements, all issues must go through the Community Contributions Triage process. Community Contributions Triage is a public meeting. :clock10: You can find the schedule on the Magento Community Calendar page. :telephone_receiver: The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, join the Community Contributions Triage session to discuss the appropriate ticket.
Hi @engcom-Hotel. Thank you for working on this issue. In order to make sure that issue has enough information and ready for development, please read and check the following instruction: :point_down:
- [ ] 1. Verify that issue has all the required information. (Preconditions, Steps to reproduce, Expected result, Actual result).
- [ ] 2. Verify that issue has a meaningful description and provides enough information to reproduce the issue.
- [ ] 3. Add
Area: XXXXXlabel to the ticket, indicating the functional areas it may be related to. - [ ] 4. Verify that the issue is reproducible on
2.4-developbranchDetails
- If the issue is reproducible on2.4-developbranch, please, add the labelReproduced on 2.4.x.
- If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here! - [ ] 5. Add label
Issue: Confirmedonce verification is complete. - [ ] 6. Make sure that automatic system confirms that report has been added to the backlog.
Hello @mohaelmrabet,
Thank you for your report and collaboration!
We have tried to reproduce the issue in the latest development branch i.e. 2.4-develop but it seems the issue is not reproducible for us.
We have created an integration test with @magentoDbIsolation enabled as follows:
<?php
declare(strict_types=1);
namespace Magz\Issue40316\Test\Integration;
use Magento\Authorization\Model\ResourceModel\Role\Collection as RoleCollection;
use Magento\Authorization\Model\Role;
use Magento\Authorization\Test\Fixture\Role as RoleFixture;
use Magento\Framework\DataObject;
use Magento\TestFramework\Fixture\DataFixture;
use Magento\TestFramework\Fixture\DataFixtureStorageManager;
use Magento\TestFramework\Helper\Bootstrap;
use PHPUnit\Framework\TestCase;
/**
* Integration test demonstrating the use of Role fixture with database isolation
*
* @magentoAppArea adminhtml
*/
class RoleFixtureTest extends TestCase
{
/**
* Test that a role can be created using the Role fixture with database isolation
*
* @magentoDbIsolation enabled
*/
#[DataFixture(RoleFixture::class, ['role_name' => 'Test Role'], 'test_role')]
public function testRoleCreationWithFixture(): void
{
// Retrieve the role from fixture storage
$roleData = DataFixtureStorageManager::getStorage()->get('test_role');
$this->assertInstanceOf(DataObject::class, $roleData);
// Verify role ID exists
$roleId = $roleData->getId();
$this->assertNotNull($roleId, 'Role ID should not be null');
$this->assertGreaterThan(0, $roleId, 'Role ID should be a positive integer');
// Load the role from database to verify it was actually created
$objectManager = Bootstrap::getObjectManager();
$role = $objectManager->create(Role::class);
$role->load($roleId);
// Assertions
$this->assertEquals($roleId, $role->getId(), 'Role should be loadable by ID');
$this->assertEquals('Test Role', $role->getRoleName(), 'Role name should match fixture data');
$this->assertNotEmpty($role->getRoleType(), 'Role type should be set');
$this->assertNotEmpty($role->getUserType(), 'User type should be set');
}
/**
* Test creating multiple roles with database isolation
*
* @magentoDbIsolation enabled
*/
#[DataFixture(RoleFixture::class, ['role_name' => 'Role One'], 'role1')]
#[DataFixture(RoleFixture::class, ['role_name' => 'Role Two'], 'role2')]
public function testMultipleRoleCreation(): void
{
$objectManager = Bootstrap::getObjectManager();
// Get both roles from fixture storage
$role1Data = DataFixtureStorageManager::getStorage()->get('role1');
$role2Data = DataFixtureStorageManager::getStorage()->get('role2');
$this->assertInstanceOf(DataObject::class, $role1Data);
$this->assertInstanceOf(DataObject::class, $role2Data);
// Verify both roles exist and have different IDs
$this->assertNotEquals(
$role1Data->getId(),
$role2Data->getId(),
'Roles should have different IDs'
);
// Load both roles from database
$role1 = $objectManager->create(Role::class);
$role1->load($role1Data->getId());
$role2 = $objectManager->create(Role::class);
$role2->load($role2Data->getId());
// Verify role names
$this->assertEquals('Role One', $role1->getRoleName());
$this->assertEquals('Role Two', $role2->getRoleName());
// Verify both roles exist in the collection
$roleCollection = $objectManager->create(RoleCollection::class);
$roleCollection->addFieldToFilter('role_id', ['in' => [$role1->getId(), $role2->getId()]]);
$this->assertEquals(2, $roleCollection->getSize(), 'Collection should contain both roles');
}
/**
* Test that roles are properly cleaned up due to database isolation
*
* @magentoDbIsolation enabled
*/
#[DataFixture(RoleFixture::class, ['role_name' => 'Temporary Role'], 'temp_role')]
public function testRoleCleanupWithDbIsolation(): void
{
$objectManager = Bootstrap::getObjectManager();
$roleData = DataFixtureStorageManager::getStorage()->get('temp_role');
$role = $objectManager->create(Role::class);
$role->load($roleData->getId());
$this->assertNotNull($role->getId(), 'Role should exist during test');
$this->assertEquals('Temporary Role', $role->getRoleName());
// This role will be automatically cleaned up by the database isolation
// after this test completes
}
}
And it is working fine for us:
Please let us know if we missed anything in issue reproduction.
As you shown in the example code, the DbIsolation is false for you.
Thank you
Hello
Hello @mohaelmrabet,
Thank you for your report and collaboration!
We have tried to reproduce the issue in the latest development branch i.e. 2.4-develop but it seems the issue is not reproducible for us.
We have created an integration test with
@magentoDbIsolation enabledas follows:<?php declare(strict_types=1); namespace Magz\Issue40316\Test\Integration; use Magento\Authorization\Model\ResourceModel\Role\Collection as RoleCollection; use Magento\Authorization\Model\Role; use Magento\Authorization\Test\Fixture\Role as RoleFixture; use Magento\Framework\DataObject; use Magento\TestFramework\Fixture\DataFixture; use Magento\TestFramework\Fixture\DataFixtureStorageManager; use Magento\TestFramework\Helper\Bootstrap; use PHPUnit\Framework\TestCase; /** * Integration test demonstrating the use of Role fixture with database isolation * * @magentoAppArea adminhtml */ class RoleFixtureTest extends TestCase { /** * Test that a role can be created using the Role fixture with database isolation * * @magentoDbIsolation enabled */ #[DataFixture(RoleFixture::class, ['role_name' => 'Test Role'], 'test_role')] public function testRoleCreationWithFixture(): void { // Retrieve the role from fixture storage $roleData = DataFixtureStorageManager::getStorage()->get('test_role'); $this->assertInstanceOf(DataObject::class, $roleData); // Verify role ID exists $roleId = $roleData->getId(); $this->assertNotNull($roleId, 'Role ID should not be null'); $this->assertGreaterThan(0, $roleId, 'Role ID should be a positive integer'); // Load the role from database to verify it was actually created $objectManager = Bootstrap::getObjectManager(); $role = $objectManager->create(Role::class); $role->load($roleId); // Assertions $this->assertEquals($roleId, $role->getId(), 'Role should be loadable by ID'); $this->assertEquals('Test Role', $role->getRoleName(), 'Role name should match fixture data'); $this->assertNotEmpty($role->getRoleType(), 'Role type should be set'); $this->assertNotEmpty($role->getUserType(), 'User type should be set'); } /** * Test creating multiple roles with database isolation * * @magentoDbIsolation enabled */ #[DataFixture(RoleFixture::class, ['role_name' => 'Role One'], 'role1')] #[DataFixture(RoleFixture::class, ['role_name' => 'Role Two'], 'role2')] public function testMultipleRoleCreation(): void { $objectManager = Bootstrap::getObjectManager(); // Get both roles from fixture storage $role1Data = DataFixtureStorageManager::getStorage()->get('role1'); $role2Data = DataFixtureStorageManager::getStorage()->get('role2'); $this->assertInstanceOf(DataObject::class, $role1Data); $this->assertInstanceOf(DataObject::class, $role2Data); // Verify both roles exist and have different IDs $this->assertNotEquals( $role1Data->getId(), $role2Data->getId(), 'Roles should have different IDs' ); // Load both roles from database $role1 = $objectManager->create(Role::class); $role1->load($role1Data->getId()); $role2 = $objectManager->create(Role::class); $role2->load($role2Data->getId()); // Verify role names $this->assertEquals('Role One', $role1->getRoleName()); $this->assertEquals('Role Two', $role2->getRoleName()); // Verify both roles exist in the collection $roleCollection = $objectManager->create(RoleCollection::class); $roleCollection->addFieldToFilter('role_id', ['in' => [$role1->getId(), $role2->getId()]]); $this->assertEquals(2, $roleCollection->getSize(), 'Collection should contain both roles'); } /** * Test that roles are properly cleaned up due to database isolation * * @magentoDbIsolation enabled */ #[DataFixture(RoleFixture::class, ['role_name' => 'Temporary Role'], 'temp_role')] public function testRoleCleanupWithDbIsolation(): void { $objectManager = Bootstrap::getObjectManager(); $roleData = DataFixtureStorageManager::getStorage()->get('temp_role'); $role = $objectManager->create(Role::class); $role->load($roleData->getId()); $this->assertNotNull($role->getId(), 'Role should exist during test'); $this->assertEquals('Temporary Role', $role->getRoleName()); // This role will be automatically cleaned up by the database isolation // after this test completes } }And it is working fine for us:
Please let us know if we missed anything in issue reproduction.
As you shown in the example code, the
DbIsolationisfalsefor you.Thank you
Hello,
You’re right — in this scenario you need to define a custom ACL resource (or a minimal ACL structure) so that the role fixture does not rely on the default parent role or Magento’s built-in ACL tree.
In DB-isolated tests, the default admin role and the default ACL resources are not present, so the fixture fails when it tries to attach the role to a parent role that doesn’t exist. The clean workaround is to provide your own ACL resource inside the module used for testing and reference it explicitly when creating the role.
Thanks
Thank you @mohaelmrabet for you reply!
Did you mean something as below:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd">
<acl>
<resources>
<resource id="Magento_Backend::admin">
<!-- Custom ACL resource for testing -->
<resource id="Magz_Issue40316::test_root" title="Test Root Resource" sortOrder="100">
<resource id="Magz_Issue40316::test_manage" title="Test Manage" sortOrder="10"/>
<resource id="Magz_Issue40316::test_view" title="Test View" sortOrder="20"/>
<resource id="Magz_Issue40316::test_delete" title="Test Delete" sortOrder="30"/>
</resource>
</resource>
</resources>
</acl>
</config>
Thank you @mohaelmrabet for you reply!
Did you mean something as below:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd"> <acl> <resources> <resource id="Magento_Backend::admin"> <!-- Custom ACL resource for testing --> <resource id="Magz_Issue40316::test_root" title="Test Root Resource" sortOrder="100"> <resource id="Magz_Issue40316::test_manage" title="Test Manage" sortOrder="10"/> <resource id="Magz_Issue40316::test_view" title="Test View" sortOrder="20"/> <resource id="Magz_Issue40316::test_delete" title="Test Delete" sortOrder="30"/> </resource> </resource> </resources> </acl> </config>
Hi, yes, you can try to use it to create an isolated admin user with a specific role.
Hello @mohaelmrabet,
Thank you for your reply!
We have made the changes in our integration test as per the above description as below:
<?php
declare(strict_types=1);
namespace Magz\Issue40316\Test\Integration;
use Magento\Authorization\Model\ResourceModel\Rules\Collection as RulesCollection;
use Magento\Authorization\Model\Role;
use Magento\Authorization\Test\Fixture\Role as RoleFixture;
use Magento\Framework\DataObject;
use Magento\TestFramework\Fixture\DataFixture;
use Magento\TestFramework\Fixture\DataFixtureStorageManager;
use Magento\TestFramework\Helper\Bootstrap;
use Magento\User\Model\User as UserModel;
use Magento\User\Test\Fixture\User as UserFixture;
use PHPUnit\Framework\TestCase;
/**
* Integration test demonstrating creating admin users with custom ACL resources
*
* This test uses custom ACL resources defined in etc/acl.xml to create admin users
* with specific roles and permissions.
*
* @magentoAppArea adminhtml
*/
class RoleFixtureTest extends TestCase
{
/**
* Test creating an admin user with a specific role that has custom ACL resources
*
* This test demonstrates the complete flow:
* 1. Create a role with custom ACL resources
* 2. Create an admin user and assign the role
* 3. Verify the user is linked to the correct role
* 4. Verify the user's role has the expected custom ACL resources
*
* @magentoDbIsolation enabled
*/
#[DataFixture(
RoleFixture::class,
[
'role_name' => 'Custom Manager Role',
'resources' => [
'Magz_Issue40316::test_manage',
'Magz_Issue40316::test_view'
]
],
'manager_role'
)]
#[DataFixture(
UserFixture::class,
[
'username' => 'custom_manager_user',
'firstname' => 'Custom',
'lastname' => 'Manager',
'email' => '[email protected]',
'password' => 'Password123!',
'role_id' => '$manager_role.role_id$',
'is_active' => 1
],
'manager_user'
)]
public function testCreateAdminUserWithCustomRoleAndAclResources(): void
{
$objectManager = Bootstrap::getObjectManager();
// Retrieve fixtures from storage
$roleData = DataFixtureStorageManager::getStorage()->get('manager_role');
$userData = DataFixtureStorageManager::getStorage()->get('manager_user');
$this->assertInstanceOf(DataObject::class, $roleData, 'Role data should be retrieved');
$this->assertInstanceOf(DataObject::class, $userData, 'User data should be retrieved');
$roleId = $roleData->getId();
$userId = $userData->getId();
$this->assertNotNull($roleId, 'Role ID should not be null');
$this->assertNotNull($userId, 'User ID should not be null');
$this->assertGreaterThan(0, $roleId, 'Role ID should be a positive integer');
$this->assertGreaterThan(0, $userId, 'User ID should be a positive integer');
// Load the role from database
$role = $objectManager->create(Role::class);
$role->load($roleId);
$this->assertEquals($roleId, $role->getId(), 'Role should be loadable by ID');
$this->assertEquals('Custom Manager Role', $role->getRoleName(), 'Role name should match');
// Load the admin user from database
$user = $objectManager->create(UserModel::class);
$user->load($userId);
$this->assertEquals($userId, $user->getId(), 'User should be loadable by ID');
$this->assertEquals('custom_manager_user', $user->getUsername(), 'Username should match');
$this->assertEquals('Custom', $user->getFirstname(), 'First name should match');
$this->assertEquals('Manager', $user->getLastname(), 'Last name should match');
$this->assertEquals('[email protected]', $user->getEmail(), 'Email should match');
$this->assertEquals(1, $user->getIsActive(), 'User should be active');
// Verify user is assigned to the correct role
$this->assertEquals(
$roleId,
$user->getRole()->getId(),
'User should be assigned to the manager role'
);
// Verify the role has the expected custom ACL resources
$rulesCollection = $objectManager->create(RulesCollection::class);
$rulesCollection->getByRoles($roleId)->load();
$resources = [];
foreach ($rulesCollection->getItems() as $rule) {
$resources[] = $rule->getResourceId();
}
$this->assertNotEmpty($resources, 'Role should have resources assigned');
$this->assertContains(
'Magz_Issue40316::test_manage',
$resources,
'Role should have custom manage permission'
);
$this->assertContains(
'Magz_Issue40316::test_view',
$resources,
'Role should have custom view permission'
);
// Verify user has access to custom ACL resources through the role
$userRole = $user->getRole();
$this->assertNotNull($userRole, 'User should have a role assigned');
$this->assertEquals('Custom Manager Role', $userRole->getRoleName(), 'User role name should match');
}
/**
* Test creating multiple admin users with different roles and custom ACL resources
*
* Demonstrates creating a team structure with different permission levels
*
* @magentoDbIsolation enabled
*/
#[DataFixture(
RoleFixture::class,
[
'role_name' => 'Viewer Role',
'resources' => ['Magz_Issue40316::test_view']
],
'viewer_role'
)]
#[DataFixture(
RoleFixture::class,
[
'role_name' => 'Editor Role',
'resources' => [
'Magz_Issue40316::test_view',
'Magz_Issue40316::test_manage'
]
],
'editor_role'
)]
#[DataFixture(
RoleFixture::class,
[
'role_name' => 'Admin Role',
'resources' => [
'Magz_Issue40316::test_view',
'Magz_Issue40316::test_manage',
'Magz_Issue40316::test_delete'
]
],
'admin_role'
)]
#[DataFixture(
UserFixture::class,
[
'username' => 'viewer_user',
'firstname' => 'Viewer',
'lastname' => 'User',
'email' => '[email protected]',
'role_id' => '$viewer_role.role_id$'
],
'viewer_user'
)]
#[DataFixture(
UserFixture::class,
[
'username' => 'editor_user',
'firstname' => 'Editor',
'lastname' => 'User',
'email' => '[email protected]',
'role_id' => '$editor_role.role_id$'
],
'editor_user'
)]
#[DataFixture(
UserFixture::class,
[
'username' => 'custom_admin_user',
'firstname' => 'Admin',
'lastname' => 'User',
'email' => '[email protected]',
'role_id' => '$admin_role.role_id$'
],
'admin_user'
)]
public function testCreateMultipleAdminUsersWithDifferentCustomRoles(): void
{
$objectManager = Bootstrap::getObjectManager();
// Retrieve all fixtures
$viewerRoleData = DataFixtureStorageManager::getStorage()->get('viewer_role');
$editorRoleData = DataFixtureStorageManager::getStorage()->get('editor_role');
$adminRoleData = DataFixtureStorageManager::getStorage()->get('admin_role');
$viewerUserData = DataFixtureStorageManager::getStorage()->get('viewer_user');
$editorUserData = DataFixtureStorageManager::getStorage()->get('editor_user');
$adminUserData = DataFixtureStorageManager::getStorage()->get('admin_user');
// Load viewer user and verify role assignment
$viewerUser = $objectManager->create(UserModel::class);
$viewerUser->load($viewerUserData->getId());
$this->assertEquals('viewer_user', $viewerUser->getUsername());
$this->assertEquals(
$viewerRoleData->getId(),
$viewerUser->getRole()->getId(),
'Viewer user should have viewer role'
);
// Verify viewer role has only view permission
$viewerRulesCollection = $objectManager->create(RulesCollection::class);
$viewerRulesCollection->getByRoles($viewerRoleData->getId())->load();
$viewerResources = [];
foreach ($viewerRulesCollection->getItems() as $rule) {
$viewerResources[] = $rule->getResourceId();
}
$this->assertContains('Magz_Issue40316::test_view', $viewerResources);
// Load editor user and verify role assignment
$editorUser = $objectManager->create(UserModel::class);
$editorUser->load($editorUserData->getId());
$this->assertEquals('editor_user', $editorUser->getUsername());
$this->assertEquals(
$editorRoleData->getId(),
$editorUser->getRole()->getId(),
'Editor user should have editor role'
);
// Verify editor role has view and manage permissions
$editorRulesCollection = $objectManager->create(RulesCollection::class);
$editorRulesCollection->getByRoles($editorRoleData->getId())->load();
$editorResources = [];
foreach ($editorRulesCollection->getItems() as $rule) {
$editorResources[] = $rule->getResourceId();
}
$this->assertContains('Magz_Issue40316::test_view', $editorResources);
$this->assertContains('Magz_Issue40316::test_manage', $editorResources);
// Load admin user and verify role assignment
$adminUser = $objectManager->create(UserModel::class);
$adminUser->load($adminUserData->getId());
$this->assertEquals('custom_admin_user', $adminUser->getUsername());
$this->assertEquals(
$adminRoleData->getId(),
$adminUser->getRole()->getId(),
'Admin user should have admin role'
);
// Verify admin role has all three permissions
$adminRulesCollection = $objectManager->create(RulesCollection::class);
$adminRulesCollection->getByRoles($adminRoleData->getId())->load();
$adminResources = [];
foreach ($adminRulesCollection->getItems() as $rule) {
$adminResources[] = $rule->getResourceId();
}
$this->assertContains('Magz_Issue40316::test_view', $adminResources);
$this->assertContains('Magz_Issue40316::test_manage', $adminResources);
$this->assertContains('Magz_Issue40316::test_delete', $adminResources);
// Verify all three users exist and are distinct
$this->assertNotEquals($viewerUser->getId(), $editorUser->getId());
$this->assertNotEquals($viewerUser->getId(), $adminUser->getId());
$this->assertNotEquals($editorUser->getId(), $adminUser->getId());
// Verify all three roles exist and are distinct
$this->assertNotEquals($viewerRoleData->getId(), $editorRoleData->getId());
$this->assertNotEquals($viewerRoleData->getId(), $adminRoleData->getId());
$this->assertNotEquals($editorRoleData->getId(), $adminRoleData->getId());
}
/**
* Test creating multiple admin users with different roles and custom ACL resources
*
* Demonstrates creating a team structure with different permission levels
*
* @magentoDbIsolation enabled
*/
#[
DataFixture(RoleFixture::class, ['resources' => ['Magz_Issue40316::test_manage']], as: 'role')
]
public function testCustomRoleCreation()
{
$this->assertTrue(true);
}
}
But still the issue not reproducible for us. Please let us know if we missed anything.
Hello
You miss DbIsolation(true)
Thanks
I am referring this document for the same and added the below statement to enable db isolation:
@magentoDbIsolation enabled
Please let us know if we missed anything in issue reproduction.