Bug description
Assets without metadata trigger an exception and prevent the Control Panel from listing assets in the affected directory.
Exception Details
- Class:
TypeError
- Message:
Carbon\Carbon::createFromTimestamp(): Argument statamic/cms#1 ($timestamp) must be of type string|int|float, null given, called in .../vendor/statamic/cms/src/Assets/Asset.php on line 598
- Code:
0
- Handled:
false
- File:
vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php:29
Stack Trace (most recent call first)
- [0] Carbon\Carbon::createFromTimestamp()
at vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php:29
- [1] Carbon\Carbon::createFromTimestamp()
at vendor/statamic/cms/src/Assets/Asset.php:598
- [2] Statamic\Assets\Asset->lastModified()
at vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:23
- [3] Illuminate\Http\Resources\Json\JsonResource->forwardCallTo()
at vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php:155
- [4] Illuminate\Http\Resources\Json\JsonResource->__call()
at vendor/statamic/cms/src/Http/Resources/CP/Assets/FolderAsset.php:19
- [5] Statamic\Http\Resources\CP\Assets\FolderAsset->toArray()
at vendor/laravel/framework/src/Illuminate/Collections/HigherOrderCollectionProxy.php:66
- [6] Illuminate\Support\HigherOrderCollectionProxy->Illuminate\Support{closure}()
at [internal function]
...
How to reproduce
- Configure Statamic to use the Eloquent assets metadata driver.
- Ensure an asset exists where the metadata is present but does not include anything:
-
Open the Control Panel and navigate to the asset container / folder that includes this asset.
-
The Control Panel fails to list the assets and throws the exception (createFromTimestamp(null)).
Temporary hotfix / workaround
Manually setting a last_modified timestamp in the metadata prevents the exception, e.g.:
{
"data": [],
"last_modified": 1711738717
}
We haven’t identified the root cause yet. In our case, assets with missing metadata appear intermittently across multiple file types (e.g. .mp4, .jpg, .png).
Logs
Environment
Environment
Laravel Version: 12.41.1
PHP Version: 8.3.27
Composer Version: -
Environment: production
Debug Mode: OFF
Maintenance Mode: OFF
Timezone: UTC
Locale: en
Cache
Config: CACHED
Events: CACHED
Routes: CACHED
Views: CACHED
Drivers
Broadcasting: log
Cache: redis
Database: mysql
Logs: stack / single, flare, nightwatch
Mail: ses
Queue: database
Scout: database
Session: redis
Storage
public/storage: NOT LINKED
disk: s3
Statamic
Addons: 4
Sites: 27
Stache Watcher: Disabled
Static Caching: Disabled
Version: 5.70.0 PRO
Statamic Addons
statamic/eloquent-driver: 4.35.1
Statamic Eloquent Driver
Asset Containers: eloquent
Assets: eloquent
Blueprints: file
Collection Trees: eloquent
Collections: file
Entries: eloquent
Fieldsets: file
Form Submissions: file
Forms: eloquent
Global Sets: eloquent
Global Variables: eloquent
Navigation Trees: eloquent
Navigations: file
Revisions: eloquent
Sites: file
Taxonomies: file
Terms: eloquent
Tokens: eloquent
Installation
Existing Laravel app
Additional details
No response
Bug description
Assets without metadata trigger an exception and prevent the Control Panel from listing assets in the affected directory.
Exception Details
TypeErrorCarbon\Carbon::createFromTimestamp(): Argument statamic/cms#1 ($timestamp) must be of type string|int|float, null given, called in .../vendor/statamic/cms/src/Assets/Asset.php on line 5980falsevendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php:29Stack Trace (most recent call first)
at vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php:29
at vendor/statamic/cms/src/Assets/Asset.php:598
at vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:23
at vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php:155
at vendor/statamic/cms/src/Http/Resources/CP/Assets/FolderAsset.php:19
at vendor/laravel/framework/src/Illuminate/Collections/HigherOrderCollectionProxy.php:66
at [internal function]
...
How to reproduce
Open the Control Panel and navigate to the asset container / folder that includes this asset.
The Control Panel fails to list the assets and throws the exception (createFromTimestamp(null)).
Temporary hotfix / workaround
Manually setting a last_modified timestamp in the metadata prevents the exception, e.g.:
We haven’t identified the root cause yet. In our case, assets with missing metadata appear intermittently across multiple file types (e.g. .mp4, .jpg, .png).
Logs
Environment
Installation
Existing Laravel app
Additional details
No response