^ think\exception\InvalidArgumentException {#280
  #message: "only array cache can be push"
  #code: 0
  #file: "/www/vendor/topthink/framework/src/think/cache/Driver.php"
  #line: 119
  trace: {
    /www/vendor/topthink/framework/src/think/cache/Driver.php:119 {
      think\cache\Driver->push(string $name, $value): void …
      › if (!is_array($item)) {
      ›     throw new InvalidArgumentException('only array cache can be push');
      › }
    }
    /www/vendor/topthink/framework/src/think/cache/Driver.php:142 {
      think\cache\Driver->append(string $name, $value): void …
      › {
      ›     $this->push($name, $value);
      › }
    }
    /www/vendor/topthink/framework/src/think/cache/TagSet.php:73 {
      think\cache\TagSet->append(string $name): void …
      ›     $key = $this->handler->getTagKey($tag);
      ›     $this->handler->append($key, $name);
      › }
    }
    /www/vendor/topthink/framework/src/think/cache/TagSet.php:109 {
      think\cache\TagSet->remember(string $name, $value, $expire = null) …
      › 
      › $this->append($name);
      › 
    }
    /www/app/common/model/Addon.php:78 {
      app\common\model\Addon::getModels(): Collection …
      › // 缓存读取每次都会读取文件, 所以还是需要自己用变量保存
      › self::$cachedModels = Cache::tag(static::class)->remember(static::class.'/models', function () {
      ›     return self::order('sort, slug')->select();
    }
    /www/app/common/model/Addon.php:99 {
      app\common\model\Addon::getInstalledAddons() …
      › } else { // 不启用分站点配置时, 所有插件配置数据的 site_id 都是 0
      ›     $addons = self::getModels()->where('site_id', 0)->dictionary(null, $slug);
      › }
    }
    /www/app/common/addon/AddonHandler.php:55 {
      app\common\addon\AddonHandler->getAllAddons($refresh = false): array …
      › $this->addons = [];
      › $addonModels = Addon::getInstalledAddons();
      › foreach ($addonModels as $addon) {
    }
    /www/app/common/addon/AddonHandler.php:148 {
      app\common\addon\AddonHandler->loadAddons() …
      › // 调用一次 getAllAddon 方法获取实例化
      › $this->getAllAddons();
      › foreach ($this->addons as $addon) {
    }
    /www/app/common/addon/AddonServiceProvider.php:23 {
      app\common\addon\AddonServiceProvider->app\common\addon\{closure} …
      ›     $addon = $this->app->addon;
      ›     $addon->loadAddons();
      › });
    }
    /www/vendor/topthink/framework/src/think/Container.php:294 {
      think\Container->invokeFunction($function, array $vars = []) …
      › 
      ›     return $function(...$args);
      › }
    }
    /www/vendor/topthink/framework/src/think/Container.php:358 {
      think\Container->invoke($callable, array $vars = [], bool $accessible = false) …
      › if ($callable instanceof Closure) {
      ›     return $this->invokeFunction($callable, $vars);
      › } elseif (is_string($callable) && false === strpos($callable, '::')) {
    }
    /www/vendor/topthink/framework/src/think/Event.php:269 {
      think\Event->dispatch($event, $params = null) …
      › 
      ›     return $this->app->invoke($call, [$params]);
      › }
    }
    /www/vendor/topthink/framework/src/think/Event.php:230 {
      think\Event->trigger($event, $params = null, bool $once = false) …
      › foreach ($listeners as $key => $listener) {
      ›     $result[$key] = $this->dispatch($listener, $params);
      › 
    }
    think\Event->trigger() {}
    /www/vendor/topthink/framework/src/think/Facade.php:96 {
      think\Facade::__callStatic($method, $params) …
      › {
      ›     return call_user_func_array([static::createFacade(), $method], $params);
      › }
    }
    /www/app/common.php:55 {
      event($event, $args = null) …
      ›     trace($info, 'event');
      ›     return Event::trigger($event, $args);
      › }
    }
    /www/app/common/middleware/SiteCheck.php:158 {
      app\common\middleware\SiteCheck::bindSite(Site $site) …
      ›     // 触发 SiteCheckedEvent 事件.
      ›     event(SiteCheckedEvent::class);
      › }
    }
    /www/app/common/middleware/SiteCheck.php:117 {
      app\common\middleware\SiteCheck->handle(Request $request, Closure $next) …
      › 
      › self::bindSite($this->site);
      › // 检查是否开启了强制 HTTPS
    }
    app\common\middleware\SiteCheck->handle() {}
    /www/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }
      › $response = call_user_func($call, $request, $next, ...$params);
      › 
    }
    /www/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {
      ›     return $pipe($passable, $stack);
      › } catch (Throwable | Exception $e) {
    }
    /www/app/common/middleware/AppStart.php:20 {
      app\common\middleware\AppStart->handle(Request $request, Closure $next) …
      › event(new AppStartEvent());
      › $response = $next($request);
      › // 触发 AppDoneEvent
    }
    app\common\middleware\AppStart->handle() {}
    /www/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }
      › $response = call_user_func($call, $request, $next, ...$params);
      › 
    }
    /www/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {
      ›     return $pipe($passable, $stack);
      › } catch (Throwable | Exception $e) {
    }
    /www/app/common/middleware/InstallGuide.php:54 {
      app\common\middleware\InstallGuide->handle(Request $request, Closure $next) …
      ›  */
      › $response = $next($request);
      › 
    }
    app\common\middleware\InstallGuide->handle() {}
    /www/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }
      › $response = call_user_func($call, $request, $next, ...$params);
      › 
    }
    /www/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {
      ›     return $pipe($passable, $stack);
      › } catch (Throwable | Exception $e) {
    }
    /www/vendor/topthink/think-trace/src/TraceDebug.php:71 {
      think\trace\TraceDebug->handle($request, Closure $next) …
      › 
      › $response = $next($request);
      › 
    }
    think\trace\TraceDebug->handle() {}
    /www/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }
      › $response = call_user_func($call, $request, $next, ...$params);
      › 
    }
    /www/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {
      ›     return $pipe($passable, $stack);
      › } catch (Throwable | Exception $e) {
    }
    /www/app/common/middleware/JsonTrace.php:37 {
      app\common\middleware\JsonTrace->handle($request, Closure $next) …
      › 
      › $response = $next($request);
      › 
    }
    app\common\middleware\JsonTrace->handle() {}
    /www/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }
      › $response = call_user_func($call, $request, $next, ...$params);
      › 
    }
    /www/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {
      ›     return $pipe($passable, $stack);
      › } catch (Throwable | Exception $e) {
    }
    /www/app/common/middleware/SessionDebugHandler.php:22 {
      app\common\middleware\SessionDebugHandler->handle(Request $request, Closure $next) …
      › 
      › $response = $next($request);
      › return $response;
    }
    app\common\middleware\SessionDebugHandler->handle() {}
    /www/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }
      › $response = call_user_func($call, $request, $next, ...$params);
      › 
    }
    /www/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {
      ›     return $pipe($passable, $stack);
      › } catch (Throwable | Exception $e) {
    }
    /www/vendor/topthink/framework/src/think/middleware/SessionInit.php:67 {
      think\middleware\SessionInit->handle($request, Closure $next) …
      › /** @var Response $response */
      › $response = $next($request);
      › 
    }
    think\middleware\SessionInit->handle() {}
    /www/vendor/topthink/framework/src/think/Middleware.php:142 {
      think\Middleware->think\{closure} …
      › }
      › $response = call_user_func($call, $request, $next, ...$params);
      › 
    }
    /www/vendor/topthink/framework/src/think/Pipeline.php:85 {
      think\Pipeline->think\{closure} …
      › try {
      ›     return $pipe($passable, $stack);
      › } catch (Throwable | Exception $e) {
    }
    /www/vendor/topthink/framework/src/think/Pipeline.php:66 {
      think\Pipeline->then(Closure $destination) …
      › 
      ›     return $pipeline($this->passable);
      › }
    }
    /www/vendor/topthink/framework/src/think/Http.php:205 {
      think\Http->runWithRequest(Request $request) …
      › ->send($request)
      › ->then(function ($request) {
      ›     return $this->dispatchToRoute($request);
    }
    /www/vendor/topthink/framework/src/think/Http.php:170 {
      think\Http->run(Request $request = null): Response …
      › try {
      ›     $response = $this->runWithRequest($request);
      › } catch (Throwable $e) {
    }
    /www/public/index.php:22 {
      › 
      › $response = $http->run();
      › 
    }
  }
}