V8-archive: api[].ERROR: PDOException: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Created on 25 Apr 2019  Â·  21Comments  Â·  Source: directus/v8-archive

Bug Report

Steps to Reproduce

  1. Go to 'https://github.com/directus/directus'
  2. git clone https://github.com/directus/directus.git
  3. Install from App admin
  4. See error
bug

Most helpful comment

Absolutely — that 100% should have been included in the release notes. Thank you for the reminder.

We can update those release notes and maybe include a note in the next release to make it more visible. We've been a bit rushed the past few months, but things are about to get much more stable/consistent.

All 21 comments

I believe this might be caused by the fact that the new default collation utf8mb4 has a bigger bytesize for it's strings than the old utf8. MySQL upgraded this byte limit in v5.7+. @cristianopolicarpo What version of MySQL are you using?

Ref limits for VARCHAR:

INNODB utf8 VARCHAR(255)
INNODB utf8mb4 VARCHAR(191)

I am using the following mysql version: Ver 14.14 Distrib 5.5.42, for Linux (x86_64) using readline 5.1

I'm using 5.7.x locally and haven't seen the issue myself, so this confirms my suspicions. I think we can / should play it safe and reduce the length of certain columns on installation seeing we officially still support MySQL < 5.7 @benhaynes

I'm using 5.7.x locally and haven't seen the issue myself, so this confirms my suspicions. I think we can / should play it safe and reduce the length of certain columns on installation seeing we officially still support MySQL < 5.7 @benhaynes

I was thinking that this worked in mysql 5.5+ as I read in the documentation:

https://docs.directus.io/getting-started/installation.html#requirements

Apache
MySQL 5.5+
A Database (empty or existing)
A Database User (with access to database)
PHP 7.1+
Extensions: pdo, mysql, curl, gd, fileinfo, and mbstring

Yeah you're right. Hence the bug label 😉

Hey @bjgajjar @hemratna — does this update make sense to ya'll? Do you need any more information to resolve this?

I agree with @rijkvanzanten on the default varchar size with MySQL 5.5 which is 191 characters long.

To fix this issue we have to change the limit 191 from 255 for migrations.

The MySQL 5.5 is no longer supported from Oracle.

@benhaynes
If you think we have to support the MySQL 5.5 then we can change the default length to 191 in existing migration.

Hmm, we want to find a good balance between supporting as many DBs vendors/versions as possible... and supporting safe/modern systems so we can take advantage of their features.

MySQL 5.5 is technically EOL (and is 9 years old)... so it seems OK to update our requirements. The big impact is on cheaper shared hosts that may not be updated. AND, if everything else works on 5.5 then it's nice to maintain support for it.

@rijkvanzanten — thoughts?

I think we should update the minimum requirements for Directus to 5.7+. Based on this issue, we already technically require 5.7+ as of right now. I also believe that MySQL introduced the JSON datatype in 5.7, so that requirement will also allows us to optimize database storage for the JSON type (no more parsing back and forth between TEXT and a JSON object).

(It's similar to our minimum requirement for PHP. Directus may or may not work with older versions of PHP, but they're not officially supported anymore by both the PHP Group nor Directus)

Cool! Let's do this!

I can update the Docs, but let's also make sure all code references/checks are also updated.

@hemratna — do you agree with updating our MySQL min version?

@benhaynes Yes, I agreed to update the min MySQL version requirements to 5.7+
The MySQL 8.0+ is not available to mostly cheaper hosts yet.

Cool. Docs are updated! (I even found some other references to MySQL 5.2 hidden in there).

Let's go through the API/App and make sure there are no code conditionals checking for older versions on install.

As the support will be MySQL 5.7+, I decide to install version 5.7 and started a clean installation. The installation now completes successfully. But when I try to login, I get the following error:

Server Error
Something is wrong with this instance's server or database.


Error stack

[2019-04-29 16:36:30] api[_].ERROR: Directus\Permissions\Exception\ForbiddenCollectionReadException: Reading items from "directus_users" collection was denied in /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Permissions/Acl.php:988
Stack trace:
#0 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/BaseTableGateway.php(1170): Directus\Permissions\Acl->enforceReadOnce
#1 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(1023): Directus\Database\TableGateway\BaseTableGateway->enforceReadPermission
#2 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(1142): Directus\Database\TableGateway\RelationalTableGateway->fetchItems
#3 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(824): Directus\Database\TableGateway\RelationalTableGateway->fetchData
#4 [internal function]: Directus\Database\TableGateway\RelationalTableGateway->getItems
#5 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/AbstractService.php(332): call_user_func_array
#6 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/AbstractService.php(276): Directus\Services\AbstractService->getDataAndSetResponseCacheTags
#7 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/UsersService.php(156): Directus\Services\AbstractService->getItemsAndSetResponseCacheTags
#8 /home/admin/web/mydomain.com/public_html/directus/src/endpoints/Users.php(50): Directus\Services\UsersService->findAll
#9 [internal function]: Directus\Api\Routes\Users->all
#10 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(41): call_user_func
#11 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Route.php(356): Slim\Handlers\Strategies\RequestResponse->__invoke
#12 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AbstractRateLimitMiddleware.php(34): Slim\Route->__invoke
#13 [internal function]: Directus\Application\Http\Middleware\AbstractRateLimitMiddleware->__invoke
#14 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#15 [internal function]: Slim\DeferredCallable->__invoke
#16 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#17 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AuthenticationMiddleware.php(81): Slim\Route->Slim\{closure}
#18 [internal function]: Directus\Application\Http\Middleware\AuthenticationMiddleware->__invoke
#19 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#20 [internal function]: Slim\DeferredCallable->__invoke
#21 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#22 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/TableGatewayMiddleware.php(25): Slim\Route->Slim\{closure}
#23 [internal function]: Directus\Application\Http\Middleware\TableGatewayMiddleware->__invoke
#24 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#25 [internal function]: Slim\DeferredCallable->__invoke
#26 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#27 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}
#28 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Route.php(334): Slim\Route->callMiddlewareStack
#29 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(515): Slim\Route->run
#30 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AbstractRateLimitMiddleware.php(34): Slim\App->__invoke
#31 [internal function]: Directus\Application\Http\Middleware\AbstractRateLimitMiddleware->__invoke
#32 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#33 [internal function]: Slim\DeferredCallable->__invoke
#34 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#35 /home/admin/web/mydomain.com/public_html/directus/vendor/directus/proxy-detection/src/ProxyDetectionMiddleware.php(30): Slim\App->Slim\{closure}
#36 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/ProxyMiddleware.php(18): RKA\Middleware\ProxyDetectionMiddleware->__invoke
#37 [internal function]: Directus\Application\Http\Middleware\ProxyMiddleware->__invoke
#38 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#39 [internal function]: Slim\DeferredCallable->__invoke
#40 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#41 /home/admin/web/mydomain.com/public_html/directus/vendor/akrabat/ip-address-middleware/src/IpAddress.php(113): Slim\App->Slim\{closure}
#42 [internal function]: RKA\Middleware\IpAddress->__invoke
#43 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#44 [internal function]: Slim\DeferredCallable->__invoke
#45 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#46 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/CorsMiddleware.php(66): Slim\App->Slim\{closure}
#47 [internal function]: Directus\Application\Http\Middleware\CorsMiddleware->__invoke
#48 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#49 [internal function]: Slim\DeferredCallable->__invoke
#50 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#51 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/ResponseCacheMiddleware.php(47): Slim\App->Slim\{closure}
#52 [internal function]: Directus\Application\Http\Middleware\ResponseCacheMiddleware->__invoke
#53 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#54 [internal function]: Slim\DeferredCallable->__invoke
#55 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#56 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->Slim\{closure}
#57 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(405): Slim\App->callMiddlewareStack
#58 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(313): Slim\App->process
#59 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Application.php(161): Slim\App->run
#60 /home/admin/web/mydomain.com/public_html/directus/public/index.php(5): Directus\Application\Application->run [] []
[2019-04-29 16:36:30] api[_].ERROR: Directus\Permissions\Exception\ForbiddenCollectionReadException: Reading items from "directus_relations" collection was denied in /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Permissions/Acl.php:988
Stack trace:
#0 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/BaseTableGateway.php(1170): Directus\Permissions\Acl->enforceReadOnce
#1 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(1023): Directus\Database\TableGateway\BaseTableGateway->enforceReadPermission
#2 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(1142): Directus\Database\TableGateway\RelationalTableGateway->fetchItems
#3 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(824): Directus\Database\TableGateway\RelationalTableGateway->fetchData
#4 [internal function]: Directus\Database\TableGateway\RelationalTableGateway->getItems
#5 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/AbstractService.php(332): call_user_func_array
#6 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/AbstractService.php(276): Directus\Services\AbstractService->getDataAndSetResponseCacheTags
#7 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/ItemsService.php(57): Directus\Services\AbstractService->getItemsAndSetResponseCacheTags
#8 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/RelationsService.php(55): Directus\Services\ItemsService->findAll
#9 /home/admin/web/mydomain.com/public_html/directus/src/endpoints/Relations.php(33): Directus\Services\RelationsService->findAll
#10 [internal function]: Directus\Api\Routes\Relations->all
#11 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(41): call_user_func
#12 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Route.php(356): Slim\Handlers\Strategies\RequestResponse->__invoke
#13 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AbstractRateLimitMiddleware.php(34): Slim\Route->__invoke
#14 [internal function]: Directus\Application\Http\Middleware\AbstractRateLimitMiddleware->__invoke
#15 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#16 [internal function]: Slim\DeferredCallable->__invoke
#17 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#18 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AuthenticationMiddleware.php(81): Slim\Route->Slim\{closure}
#19 [internal function]: Directus\Application\Http\Middleware\AuthenticationMiddleware->__invoke
#20 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#21 [internal function]: Slim\DeferredCallable->__invoke
#22 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#23 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/TableGatewayMiddleware.php(25): Slim\Route->Slim\{closure}
#24 [internal function]: Directus\Application\Http\Middleware\TableGatewayMiddleware->__invoke
#25 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#26 [internal function]: Slim\DeferredCallable->__invoke
#27 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#28 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}
#29 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Route.php(334): Slim\Route->callMiddlewareStack
#30 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(515): Slim\Route->run
#31 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AbstractRateLimitMiddleware.php(34): Slim\App->__invoke
#32 [internal function]: Directus\Application\Http\Middleware\AbstractRateLimitMiddleware->__invoke
#33 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#34 [internal function]: Slim\DeferredCallable->__invoke
#35 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#36 /home/admin/web/mydomain.com/public_html/directus/vendor/directus/proxy-detection/src/ProxyDetectionMiddleware.php(30): Slim\App->Slim\{closure}
#37 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/ProxyMiddleware.php(18): RKA\Middleware\ProxyDetectionMiddleware->__invoke
#38 [internal function]: Directus\Application\Http\Middleware\ProxyMiddleware->__invoke
#39 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#40 [internal function]: Slim\DeferredCallable->__invoke
#41 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#42 /home/admin/web/mydomain.com/public_html/directus/vendor/akrabat/ip-address-middleware/src/IpAddress.php(113): Slim\App->Slim\{closure}
#43 [internal function]: RKA\Middleware\IpAddress->__invoke
#44 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#45 [internal function]: Slim\DeferredCallable->__invoke
#46 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#47 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/CorsMiddleware.php(66): Slim\App->Slim\{closure}
#48 [internal function]: Directus\Application\Http\Middleware\CorsMiddleware->__invoke
#49 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#50 [internal function]: Slim\DeferredCallable->__invoke
#51 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#52 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/ResponseCacheMiddleware.php(47): Slim\App->Slim\{closure}
#53 [internal function]: Directus\Application\Http\Middleware\ResponseCacheMiddleware->__invoke
#54 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#55 [internal function]: Slim\DeferredCallable->__invoke
#56 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#57 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->Slim\{closure}
#58 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(405): Slim\App->callMiddlewareStack
#59 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(313): Slim\App->process
#60 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Application.php(161): Slim\App->run
#61 /home/admin/web/mydomain.com/public_html/directus/public/index.php(5): Directus\Application\Application->run [] []
[2019-04-29 16:36:31] api[].ERROR: Directus\Exception\UnauthorizedException: Unauthorized request in /home/admin/web/mydomain.com/public_html/directus/src/helpers/app.php:252
Stack trace:
#0 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(530): Directus\{closure}
#1 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/CorsMiddleware.php(66): Slim\App->__invoke
#2 [internal function]: Directus\Application\Http\Middleware\CorsMiddleware->__invoke
#3 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#4 [internal function]: Slim\DeferredCallable->__invoke
#5 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#6 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->Slim\{closure}
#7 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(405): Slim\App->callMiddlewareStack
#8 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(313): Slim\App->process
#9 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Application.php(161): Slim\App->run
#10 /home/admin/web/mydomain.com/public_html/directus/public/index.php(5): Directus\Application\Application->run [] []
[2019-04-29 16:36:31] api[_].ERROR: Directus\Permissions\Exception\ForbiddenCollectionReadException: Reading items from "directus_settings" collection was denied in /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Permissions/Acl.php:988
Stack trace:
#0 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/BaseTableGateway.php(1170): Directus\Permissions\Acl->enforceReadOnce
#1 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(1023): Directus\Database\TableGateway\BaseTableGateway->enforceReadPermission
#2 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(1142): Directus\Database\TableGateway\RelationalTableGateway->fetchItems
#3 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(824): Directus\Database\TableGateway\RelationalTableGateway->fetchData
#4 [internal function]: Directus\Database\TableGateway\RelationalTableGateway->getItems
#5 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/AbstractService.php(332): call_user_func_array
#6 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/AbstractService.php(276): Directus\Services\AbstractService->getDataAndSetResponseCacheTags
#7 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/ItemsService.php(57): Directus\Services\AbstractService->getItemsAndSetResponseCacheTags
#8 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/SettingsService.php(55): Directus\Services\ItemsService->findAll
#9 /home/admin/web/mydomain.com/public_html/directus/src/endpoints/Settings.php(69): Directus\Services\SettingsService->findAll
#10 [internal function]: Directus\Api\Routes\Settings->all
#11 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(41): call_user_func
#12 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Route.php(356): Slim\Handlers\Strategies\RequestResponse->__invoke
#13 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AbstractRateLimitMiddleware.php(34): Slim\Route->__invoke
#14 [internal function]: Directus\Application\Http\Middleware\AbstractRateLimitMiddleware->__invoke
#15 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#16 [internal function]: Slim\DeferredCallable->__invoke
#17 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#18 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AuthenticationMiddleware.php(81): Slim\Route->Slim\{closure}
#19 [internal function]: Directus\Application\Http\Middleware\AuthenticationMiddleware->__invoke
#20 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#21 [internal function]: Slim\DeferredCallable->__invoke
#22 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#23 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/TableGatewayMiddleware.php(25): Slim\Route->Slim\{closure}
#24 [internal function]: Directus\Application\Http\Middleware\TableGatewayMiddleware->__invoke
#25 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#26 [internal function]: Slim\DeferredCallable->__invoke
#27 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#28 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}
#29 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Route.php(334): Slim\Route->callMiddlewareStack
#30 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(515): Slim\Route->run
#31 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AbstractRateLimitMiddleware.php(34): Slim\App->__invoke
#32 [internal function]: Directus\Application\Http\Middleware\AbstractRateLimitMiddleware->__invoke
#33 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#34 [internal function]: Slim\DeferredCallable->__invoke
#35 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#36 /home/admin/web/mydomain.com/public_html/directus/vendor/directus/proxy-detection/src/ProxyDetectionMiddleware.php(30): Slim\App->Slim\{closure}
#37 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/ProxyMiddleware.php(18): RKA\Middleware\ProxyDetectionMiddleware->__invoke
#38 [internal function]: Directus\Application\Http\Middleware\ProxyMiddleware->__invoke
#39 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#40 [internal function]: Slim\DeferredCallable->__invoke
#41 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#42 /home/admin/web/mydomain.com/public_html/directus/vendor/akrabat/ip-address-middleware/src/IpAddress.php(113): Slim\App->Slim\{closure}
#43 [internal function]: RKA\Middleware\IpAddress->__invoke
#44 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#45 [internal function]: Slim\DeferredCallable->__invoke
#46 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#47 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/CorsMiddleware.php(66): Slim\App->Slim\{closure}
#48 [internal function]: Directus\Application\Http\Middleware\CorsMiddleware->__invoke
#49 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#50 [internal function]: Slim\DeferredCallable->__invoke
#51 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#52 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/ResponseCacheMiddleware.php(47): Slim\App->Slim\{closure}
#53 [internal function]: Directus\Application\Http\Middleware\ResponseCacheMiddleware->__invoke
#54 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#55 [internal function]: Slim\DeferredCallable->__invoke
#56 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#57 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->Slim\{closure}
#58 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(405): Slim\App->callMiddlewareStack
#59 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(313): Slim\App->process
#60 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Application.php(161): Slim\App->run
#61 /home/admin/web/mydomain.com/public_html/directus/public/index.php(5): Directus\Application\Application->run [] []
[2019-04-29 16:36:31] api[_].ERROR: Directus\Permissions\Exception\ForbiddenCollectionReadException: Reading items from "directus_collections" collection was denied in /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Permissions/Acl.php:988
Stack trace:
#0 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/BaseTableGateway.php(1170): Directus\Permissions\Acl->enforceReadOnce
#1 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(1023): Directus\Database\TableGateway\BaseTableGateway->enforceReadPermission
#2 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(1142): Directus\Database\TableGateway\RelationalTableGateway->fetchItems
#3 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Database/TableGateway/RelationalTableGateway.php(824): Directus\Database\TableGateway\RelationalTableGateway->fetchData
#4 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Services/TablesService.php(67): Directus\Database\TableGateway\RelationalTableGateway->getItems
#5 /home/admin/web/mydomain.com/public_html/directus/src/endpoints/Collections.php(58): Directus\Services\TablesService->findAll
#6 [internal function]: Directus\Api\Routes\Collections->all
#7 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(41): call_user_func
#8 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Route.php(356): Slim\Handlers\Strategies\RequestResponse->__invoke
#9 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AbstractRateLimitMiddleware.php(34): Slim\Route->__invoke
#10 [internal function]: Directus\Application\Http\Middleware\AbstractRateLimitMiddleware->__invoke
#11 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#12 [internal function]: Slim\DeferredCallable->__invoke
#13 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#14 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AuthenticationMiddleware.php(81): Slim\Route->Slim\{closure}
#15 [internal function]: Directus\Application\Http\Middleware\AuthenticationMiddleware->__invoke
#16 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#17 [internal function]: Slim\DeferredCallable->__invoke
#18 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#19 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/TableGatewayMiddleware.php(25): Slim\Route->Slim\{closure}
#20 [internal function]: Directus\Application\Http\Middleware\TableGatewayMiddleware->__invoke
#21 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#22 [internal function]: Slim\DeferredCallable->__invoke
#23 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#24 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}
#25 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/Route.php(334): Slim\Route->callMiddlewareStack
#26 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(515): Slim\Route->run
#27 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/AbstractRateLimitMiddleware.php(34): Slim\App->__invoke
#28 [internal function]: Directus\Application\Http\Middleware\AbstractRateLimitMiddleware->__invoke
#29 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#30 [internal function]: Slim\DeferredCallable->__invoke
#31 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#32 /home/admin/web/mydomain.com/public_html/directus/vendor/directus/proxy-detection/src/ProxyDetectionMiddleware.php(30): Slim\App->Slim\{closure}
#33 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/ProxyMiddleware.php(18): RKA\Middleware\ProxyDetectionMiddleware->__invoke
#34 [internal function]: Directus\Application\Http\Middleware\ProxyMiddleware->__invoke
#35 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#36 [internal function]: Slim\DeferredCallable->__invoke
#37 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#38 /home/admin/web/mydomain.com/public_html/directus/vendor/akrabat/ip-address-middleware/src/IpAddress.php(113): Slim\App->Slim\{closure}
#39 [internal function]: RKA\Middleware\IpAddress->__invoke
#40 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#41 [internal function]: Slim\DeferredCallable->__invoke
#42 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#43 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/CorsMiddleware.php(66): Slim\App->Slim\{closure}
#44 [internal function]: Directus\Application\Http\Middleware\CorsMiddleware->__invoke
#45 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#46 [internal function]: Slim\DeferredCallable->__invoke
#47 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#48 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/ResponseCacheMiddleware.php(47): Slim\App->Slim\{closure}
#49 [internal function]: Directus\Application\Http\Middleware\ResponseCacheMiddleware->__invoke
#50 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#51 [internal function]: Slim\DeferredCallable->__invoke
#52 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#53 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->Slim\{closure}
#54 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(405): Slim\App->callMiddlewareStack
#55 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(313): Slim\App->process
#56 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Application.php(161): Slim\App->run
#57 /home/admin/web/mydomain.com/public_html/directus/public/index.php(5): Directus\Application\Application->run [] []
[2019-04-29 16:36:31] api[].ERROR: Directus\Exception\UnauthorizedException: Unauthorized request in /home/admin/web/mydomain.com/public_html/directus/src/helpers/app.php:252
Stack trace:
#0 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(530): Directus\{closure}
#1 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Http/Middleware/CorsMiddleware.php(66): Slim\App->__invoke
#2 [internal function]: Directus\Application\Http\Middleware\CorsMiddleware->__invoke
#3 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array
#4 [internal function]: Slim\DeferredCallable->__invoke
#5 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func
#6 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->Slim\{closure}
#7 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(405): Slim\App->callMiddlewareStack
#8 /home/admin/web/mydomain.com/public_html/directus/vendor/slim/slim/Slim/App.php(313): Slim\App->process
#9 /home/admin/web/mydomain.com/public_html/directus/src/core/Directus/Application/Application.php(161): Slim\App->run
#10 /home/admin/web/mydomain.com/public_html/directus/public/index.php(5): Directus\Application\Application->run [] []

The above error happened on a server running centos 6.10:

Server Error
Something is wrong with this instance's server or database.

It seems to be a permissions issue.

So I decided to install on another server an updated version of CentOS 7 and a fresh installation of Directus and the same problem occurs:

Server Error
Something is wrong with this instance's server or database.

Has anyone running the current Directus in CentOS cloned from Directus master?

@cristianopolicarpo

I tried to replicate this issue with the system which contains MySQL version 5.7.21 but I am not able to do so. Can you please share your DB file?

I'm closing this as the OP MySQL issue has been resolved.

@benhaynes @rijkvanzanten Is it possible to add this kind of changes of requirements in the releases notes you do on GitHub ?
When I installed the api, the requirements where MySQL 5.5, I upgraded and now I have this problem and can't configure new apis.

Absolutely — that 100% should have been included in the release notes. Thank you for the reminder.

We can update those release notes and maybe include a note in the next release to make it more visible. We've been a bit rushed the past few months, but things are about to get much more stable/consistent.

From an email I received:

I found the source of the error, by installing the tables manually.
It is the index of the "directus_collection_presets" table which would be too long (screenshot attached).
It is only by deleting this UNIQUE KEY index that the installation of Directus succeeds (but not by reducing it), and that the tables are all installed.
The problem is that then Directus does not work ("Something wrong with that instance ..."), even by then manually reproducing the same configuration of keys as that which works on a local server (Xampp).

I work for a client on its shared hosting, I cannot modify the configuration files.
Directus would therefore not be compatible with shared hosting, I am forced to abandon this product, which however corresponded exactly to my needs.

It might be useful to mention it in your documentation ...

unnamed

The index mentioned above is most likely the unique constraint on the compound key user+collection+title ( int-11 + varchar-64 + varchar-255 )

Was this page helpful?
0 / 5 - 0 ratings

Related issues

metalmarco picture metalmarco  Â·  3Comments

gitlabisbetterthangithub picture gitlabisbetterthangithub  Â·  3Comments

cdwmhcc picture cdwmhcc  Â·  3Comments

jwkellyiii picture jwkellyiii  Â·  3Comments

maettyhawk picture maettyhawk  Â·  3Comments