=== Investor cluster (3 rows) === 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 'cluster@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`, `investor_bio`, `source`, `is_active`, `last_synced_at`, `updated_at`, `created_at`) values (8400000002, 13, cluster@example.com, +966 500111111, old bio from archive, monday, 1, 2026-09-29 21:47:11, 2026-09-29 21:47:11, 2026-09-29 21:47:11))

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_merger.php:103
98    'is_active'      => true,99    'last_synced_at' => now(),100]);101102// Row B: same email as A, archive group → low priority103$b = Investor::create([104    'monday_item_id' => $baseMid + 2,105    'group_id'       => $archiveGroup->id,106    'name'           => 'Alice (archive)',107    'email'          => 'cluster@example.com',       // ← bridges to A by email108    'phone_number'   => '+966 500111111',109    'investor_bio'   => 'old bio from archive',      // low priority, should NOT overwrite if canonical has a value110    'source'         => Investor::SOURCE_MONDAY,111    'is_active'      => true,112    'last_synced_at' => now(),113]);114115

Queries

mysql
select * from `groups` where `type` = 'investor' and `name` not like '%archive%' and `name` not like '%rejected%' and `groups`.`deleted_at` is null limit 1
2.26ms
mysql
select * from `groups` where `type` = 'investor' and `name` like '%archive%' and `groups`.`deleted_at` is null limit 1
0.35ms
mysql
select * from `groups` where `type` = 'investor' and `name` like '%rejected%' and `groups`.`deleted_at` is null limit 1
0.35ms
mysql
select * from `groups` where `type` = 'startup' and `name` not like '%archive%' and `name` not like '%rejected%' and `groups`.`deleted_at` is null limit 1
0.29ms
mysql
select * from `groups` where `type` = 'startup' and `name` like '%archive%' and `groups`.`deleted_at` is null limit 1
0.3ms
mysql
delete from `investors` where `monday_item_id` >= 8400000000
0.56ms
mysql
delete from `startups` where `monday_item_id` >= 8400000000
0.39ms
mysql
select * from `label_options` where exists (select * from `labels` where `label_options`.`label_id` = `labels`.`id` and `type` = 'investor' and `key` = 'sector' and `labels`.`deleted_at` is null) and `label_options`.`deleted_at` is null limit 1
3.74ms
mysql
select * from `label_options` where exists (select * from `labels` where `label_options`.`label_id` = `labels`.`id` and `type` = 'investor' and `key` = 'preferred_stage' and `labels`.`deleted_at` is null) and `label_options`.`deleted_at` is null limit 1
0.44ms
mysql
select * from `label_options` where exists (select * from `labels` where `label_options`.`label_id` = `labels`.`id` and `type` = 'startup' and `key` = 'geographic_focus' and `labels`.`deleted_at` is null) and `label_options`.`deleted_at` is null limit 1
0.81ms
mysql
insert into `investors` (`monday_item_id`, `group_id`, `email`, `phone_number`, `investor_bio`, `source`, `is_active`, `last_synced_at`, `updated_at`, `created_at`) values (8400000001, 10, 'cluster@example.com', '+966 500111000', NULL, 'monday', 1, '2026-09-29 21:47:11', '2026-09-29 21:47:11', '2026-09-29 21:47:11')
2.46ms

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