── Investor scenarios ── ✓ alone investor: is_duplicate=false ✓ alice group A pre-collision: false Numu Angels
Internal Server Error

Illuminate\Database\UniqueConstraintViolationException

vendor/laravel/framework/src/Illuminate/Database/Connection.php:838

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'alice@example.com' for key 'investors_email_unique' (Connection: mysql, Host: 127.0.0.1, Port: 3306, Database: angels_dev, SQL: insert into `investors` (`monday_item_id`, `group_id`, `email`, `phone_number`, `source`, `is_active`, `last_synced_at`, `updated_at`, `created_at`) values (8100000003, 11, alice@example.com, +966 500000003, monday, 1, 2026-09-29 20:04:22, 2026-09-29 20:04:22, 2026-09-29 20:04:22))

LARAVEL 12.58.0
PHP 8.2.33
UNHANDLED
CODE 23000
500
GET
https://dev.numuangels.net/numu_development/public

Exception trace

15 vendor frames
Illuminate\Database\Connection->runQueryCallback(string, array, object(Closure))
vendor/laravel/framework/src/Illuminate/Database/Connection.php:838
Illuminate\Database\Connection->runQueryCallback(string, array, object(Closure))
vendor/laravel/framework/src/Illuminate/Database/Connection.php:794
Illuminate\Database\Connection->run(string, array, object(Closure))
vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php:42
Illuminate\Database\MySqlConnection->insert(string, array, string)
vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php:35
Illuminate\Database\Query\Processors\MySqlProcessor->processInsertGetId(object(Illuminate\Database\Query\Builder), string, array, string)
vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:4170
Illuminate\Database\Query\Builder->insertGetId(array, string)
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:2237
Illuminate\Database\Eloquent\Builder->__call(string, array)
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1436
Illuminate\Database\Eloquent\Model->insertAndSetId(object(Illuminate\Database\Eloquent\Builder), array)
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1401
Illuminate\Database\Eloquent\Model->performInsert(object(Illuminate\Database\Eloquent\Builder))
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1240
Illuminate\Database\Eloquent\Model->save()
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:1219
Illuminate\Database\Eloquent\Builder->Illuminate\Database\Eloquent\{closure}(object(App\Models\Investor))
vendor/laravel/framework/src/Illuminate/Support/helpers.php:393
tap(object(App\Models\Investor), object(Closure))
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:1218
Illuminate\Database\Eloquent\Builder->create(array)
vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:23
Illuminate\Database\Eloquent\Model->forwardCallTo(object(Illuminate\Database\Eloquent\Builder), string, array)
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:2540
Illuminate\Database\Eloquent\Model->__call(string, array)
vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:2556
Illuminate\Database\Eloquent\Model::__callStatic(string, array)
tests/Manual/test_duplicate_flagger.php:79
74$a->refresh();75$a->is_duplicate === false76    ? ok('alice group A pre-collision: false')77    : bad('alice prematurely flagged');7879$b = Investor::create([80    'monday_item_id' => $baseMid + 3,81    'group_id'       => $investorGroupB->id,82    'name'           => 'Alice (group B)',83    'email'          => 'alice@example.com',          // ← collision on email84    'phone_number'   => '+966 500000003',85    'source'         => Investor::SOURCE_MONDAY,86    'is_active'      => true,87    'last_synced_at' => now(),88]);89$flagger->flag($b);90$a->refresh(); $b->refresh();91

Queries

mysql
select * from `groups` where `type` = 'investor' and `name` = 'new' and `groups`.`deleted_at` is null limit 1
2.22ms
mysql
select * from `groups` where `type` = 'investor' and `name` != 'new' and `groups`.`deleted_at` is null limit 1
0.39ms
mysql
select * from `groups` where `type` = 'startup' and `name` = 'new' and `groups`.`deleted_at` is null limit 1
0.32ms
mysql
select * from `groups` where `type` = 'startup' and `name` != 'new' and `groups`.`deleted_at` is null limit 1
0.34ms
mysql
delete from `investors` where `monday_item_id` >= 8100000000
2.6ms
mysql
delete from `startups` where `monday_item_id` >= 8100000000
0.37ms
mysql
insert into `investors` (`monday_item_id`, `group_id`, `email`, `phone_number`, `source`, `is_active`, `last_synced_at`, `updated_at`, `created_at`) values (8100000001, 10, 'alone@example.com', '+966 500000001', 'monday', 1, '2026-09-29 20:04:22', '2026-09-29 20:04:22', '2026-09-29 20:04:22')
0.9ms
mysql
select * from `investors` where `id` = 732 limit 1
0.46ms
mysql
select * from `investors` where `deleted_at` is null and `id` != 732 and (`email` = 'alone@example.com' or `phone_number` LIKE '%966500000001') and `investors`.`deleted_at` is null
1.46ms
mysql
select * from `investors` where `id` = 732 limit 1
1.17ms
mysql
insert into `investors` (`monday_item_id`, `group_id`, `email`, `phone_number`, `source`, `is_active`, `last_synced_at`, `updated_at`, `created_at`) values (8100000002, 10, 'alice@example.com', '+966 500000002', 'monday', 1, '2026-09-29 20:04:22', '2026-09-29 20:04:22', '2026-09-29 20:04:22')
1.32ms
mysql
select * from `investors` where `id` = 733 limit 1
0.38ms
mysql
select * from `investors` where `deleted_at` is null and `id` != 733 and (`email` = 'alice@example.com' or `phone_number` LIKE '%966500000002') and `investors`.`deleted_at` is null
1.32ms
mysql
select * from `investors` where `id` = 733 limit 1
1.01ms

Headers

host
dev.numuangels.net
user-agent
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
accept
*/*
accept-language
en-us,en;q=0.5
accept-charset
ISO-8859-1,utf-8;q=0.7,*;q=0.7
accept-encoding
gzip, br, zstd, deflate

Body

// No request body

Routing

// No routing context

Routing parameters

// No routing parameters