[halo-dev/halo]本地运行插件报错

2024-04-24 459 views
8

目的 :想在本地尝试数据能否从 1.x 迁移到 2.x

按照教程在本地启动了 console 和 halo,此时服务正常。 按照迁移插件 plugin-migrate,就报错 500. halo 服务也疯狂打印 log

image image Relevant log output
2023-02-03T16:45:14.246+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.246+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.248+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.248+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.249+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.255+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[name=PluginMigrate] at 2023-02-03T08:45:14.255482Z
2023-02-03T16:45:14.255+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciling request Request[name=PluginMigrate] at 2023-02-03T08:45:14.255579Z
2023-02-03T16:45:14.258+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.258+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.260+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.260+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.261+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.267+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[name=PluginMigrate] at 2023-02-03T08:45:14.267687Z
2023-02-03T16:45:14.267+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciling request Request[name=PluginMigrate] at 2023-02-03T08:45:14.267874Z
2023-02-03T16:45:14.272+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.272+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.274+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.274+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.275+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.281+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[name=PluginMigrate] at 2023-02-03T08:45:14.281214Z
2023-02-03T16:45:14.281+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciling request Request[name=PluginMigrate] at 2023-02-03T08:45:14.281372Z
2023-02-03T16:45:14.284+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.284+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.287+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.287+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.288+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.293+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[name=PluginMigrate] at 2023-02-03T08:45:14.293542Z
2023-02-03T16:45:14.293+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciling request Request[name=PluginMigrate] at 2023-02-03T08:45:14.293599Z
2023-02-03T16:45:14.295+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.295+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.298+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.298+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.299+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.305+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[name=PluginMigrate] at 2023-02-03T08:45:14.305394Z
2023-02-03T16:45:14.305+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciling request Request[name=PluginMigrate] at 2023-02-03T08:45:14.305455Z
2023-02-03T16:45:14.307+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.307+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.309+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.309+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.310+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.316+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[name=PluginMigrate] at 2023-02-03T08:45:14.316880Z
2023-02-03T16:45:14.316+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciling request Request[name=PluginMigrate] at 2023-02-03T08:45:14.316963Z
2023-02-03T16:45:14.319+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.319+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.321+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.321+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.322+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.328+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[name=PluginMigrate] at 2023-02-03T08:45:14.328346Z
2023-02-03T16:45:14.328+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciling request Request[name=PluginMigrate] at 2023-02-03T08:45:14.328467Z
2023-02-03T16:45:14.334+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.334+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.347+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.347+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.352+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.357+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[name=PluginMigrate] at 2023-02-03T08:45:14.357328Z
2023-02-03T16:45:14.357+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciling request Request[name=PluginMigrate] at 2023-02-03T08:45:14.357448Z
2023-02-03T16:45:14.362+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.362+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.370+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.370+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.374+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.379+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[name=PluginMigrate] at 2023-02-03T08:45:14.379396Z
2023-02-03T16:45:14.379+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciling request Request[name=PluginMigrate] at 2023-02-03T08:45:14.379659Z
2023-02-03T16:45:14.383+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.383+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.386+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] immediately
2023-02-03T16:45:14.387+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Adding request Request[name=PluginMigrate] after PT0.005S
2023-02-03T16:45:14.389+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 >>> Reconciled request: Request[name=PluginMigrate] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T16:45:14.395+08:00 DEBUG 96805 --- [nReconciler-t-1] r.h.a.extension.controller.DefaultQueue  : Take request Request[n

回答

6

你是使用 dev profile 启动 halo 并上传了迁移插件的 jar 包安装吗,可以鼠标挪到插件那个红点上面看一下错误信息是什么,你贴的日志都是 debug 日志,与错误无关

4

@guqing 2023-02-03T16:55:09.482+08:00 INFO 99489 --- [ restartedMain] run.halo.app.Application : The following 1 profile is active: "dev" 确认使用的是 dev.

image
1

还有就是 我在初始化博客时, 输入站点名后,弹出了一个服务器错误,网络请求如下

image
0

dev profile 里面插件配置的是开发模式

image

这个模式,插件只能通过配置项目目录的方式启动,不能上传 jar 包,除非你将这项配置的值改为 deployment

5

两种插件模式加载插件的方式是不一样的,开发模式是从插件项目的编译目录查找类文件如 out 目录,而生产模式是从 jar 文件中夹在类,所以你可以将 runtime-mode 改为 deployment 然后重启 halo 你的插件就可以正常运行了

1

@guqing

  1. 改成 deployment 有别的影响吗?
  2. 插件只能通过配置项目目录的方式启动。 这个有相关教程吗
4

非也:

  1. 插件以开发模式(development)启动,表示从插件项目目录加载插件,这时通过后台上传 jar 不符合插件的加载规则所以无法启动
  2. 如果你想通过后台安装插件,你可以将runtime-mode改为 deployment 然后重启 halo 即可 要解决你现在的问题,你只需要修改 application-dev.yaml 中的 halo.plugin.runtime-mode=deployment,然后重启 halo ,插件就正常运行了,你可以试一下
7

好的,谢谢。 上述初始化博客时出现 500 错误,辛苦也看一下 @guqing

image
9

@Rainsheep 错误日志贴一下,没有错误日志,我并不清楚发生了什么

6

@guqing

2023-02-03T17:15:31.215+08:00 DEBUG 2051 --- [ctor-http-nio-3] r.h.a.e.controller.DefaultDelayQueue     : Adding request Request[name=373a5f79-f44f-441a-9df1-85a4f553ece8] immediately
2023-02-03T17:15:31.220+08:00 DEBUG 2051 --- [eReconciler-t-1] r.h.a.e.controller.DefaultDelayQueue     : Adding request Request[name=373a5f79-f44f-441a-9df1-85a4f553ece8] immediately
2023-02-03T17:15:31.227+08:00 DEBUG 2051 --- [eReconciler-t-1] r.h.a.e.controller.DefaultDelayQueue     : Adding request Request[name=373a5f79-f44f-441a-9df1-85a4f553ece8] immediately
2023-02-03T17:15:31.248+08:00 DEBUG 2051 --- [eReconciler-t-1] r.h.a.e.controller.DefaultDelayQueue     : Adding request Request[name=373a5f79-f44f-441a-9df1-85a4f553ece8] immediately
2023-02-03T17:15:31.257+08:00 DEBUG 2051 --- [eReconciler-t-1] r.h.a.e.controller.DefaultDelayQueue     : Adding request Request[name=373a5f79-f44f-441a-9df1-85a4f553ece8] immediately
2023-02-03T17:15:31.257+08:00 DEBUG 2051 --- [eReconciler-t-1] r.h.a.e.controller.DefaultController     : run.halo.app.core.extension.reconciler.SinglePageReconciler-worker-1 >>> Reconciled request: Request[name=373a5f79-f44f-441a-9df1-85a4f553ece8] with result: Result[reEnqueue=false, retryAfter=null]
2023-02-03T17:15:32.303+08:00 ERROR 2051 --- [    parallel-14] r.h.a.c.e.endpoint.SinglePageEndpoint    : Failed to publish single page [373a5f79-f44f-441a-9df1-85a4f553ece8]

reactor.core.Exceptions$RetryExhaustedException: Retries exhausted: 10/10
    at reactor.core.Exceptions.retryExhausted(Exceptions.java:306) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.util.retry.RetryBackoffSpec.lambda$static$0(RetryBackoffSpec.java:68) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.util.retry.RetryBackoffSpec.lambda$null$4(RetryBackoffSpec.java:560) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:183) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:471) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:615) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:602) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerComplete(FluxConcatMapNoPrefetch.java:274) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onComplete(FluxConcatMap.java:887) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:246) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.5.2.jar:3.5.2]
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Caused by: org.springframework.retry.RetryException: SinglePage publishing status is not as expected
    at run.halo.app.core.extension.endpoint.SinglePageEndpoint.lambda$publishSinglePage$15(SinglePageEndpoint.java:215) ~[main/:na]
    at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber.deferredComplete(MonoUsingWhen.java:268) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:159) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:488) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:421) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onComplete(FluxBuffer.java:185) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.deferredComplete(FluxUsingWhen.java:392) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:531) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators.complete(Operators.java:137) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:159) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2215) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:846) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:608) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:588) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onComplete(FluxFlatMap.java:465) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:357) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Flux.subscribe(Flux.java:8660) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:200) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxFlatMap.subscribeOrReturn(FluxFlatMap.java:93) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Flux.subscribe(Flux.java:8646) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:195) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) ~[reactor-core-3.5.2.jar:3.5.2]
    at io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92) ~[r2dbc-pool-1.0.0.RELEASE.jar:1.0.0.RELEASE]
    at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:159) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2215) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.2.jar:3.5.2]
    at io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50) ~[r2dbc-pool-1.0.0.RELEASE.jar:1.0.0.RELEASE]
    at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.pool.SimpleDequePool.pendingOffer(SimpleDequePool.java:598) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.pool.SimpleDequePool.doAcquire(SimpleDequePool.java:294) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.pool.AbstractPool$Borrower.request(AbstractPool.java:430) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2215) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.pool.SimpleDequePool$QueueBorrowerMono.subscribe(SimpleDequePool.java:716) ~[reactor-pool-1.0.0.jar:1.0.0]
    at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxRetry$RetrySubscriber.resubscribe(FluxRetry.java:117) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoRetry.subscribeOrReturn(MonoRetry.java:50) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4429) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:180) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.Mono.subscribe(Mono.java:4444) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxUsingWhen.subscribe(FluxUsingWhen.java:104) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoUsingWhen.subscribe(MonoUsingWhen.java:87) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.resubscribe(FluxRetryWhen.java:216) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onNext(FluxRetryWhen.java:269) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:258) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.5.2.jar:3.5.2]
    at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245) ~[reactor-core-3.5.2.jar:3.5.2]
    ... 17 common frames omitted

2023-02-03T17:15:32.307+08:00 DEBUG 2051 --- [    parallel-14] a.w.r.e.AbstractErrorWebExceptionHandler : [30ef0b3b-671] Resolved [IllegalStateException: Publishing wait timeout.] for HTTP PUT /apis/api.console.halo.run/v1alpha1/singlepages/373a5f79-f44f-441a-9df1-85a4f553ece8/publish
2023-02-03T17:15:32.307+08:00 ERROR 2051 --- [    parallel-14] a.w.r.e.AbstractErrorWebExceptionHandler : [30ef0b3b-671]  500 Server Error for HTTP PUT "/apis/api.console.halo.run/v1alpha1/singlepages/373a5f79-f44f-441a-9df1-85a4f553ece8/publish"

java.lang.IllegalStateException: Publishing wait timeout.
    at run.halo.app.core.extension.endpoint.SinglePageEndpoint.lambda$publishSinglePage$17(SinglePageEndpoint.java:221) ~[main/:na]
    Suppressed: reactor.core.Exceptions$RetryExhaustedException: Retries exhausted: 10/10
        at reactor.core.Exceptions.retryExhausted(Exceptions.java:306) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.util.retry.RetryBackoffSpec.lambda$static$0(RetryBackoffSpec.java:68) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.util.retry.RetryBackoffSpec.lambda$null$4(RetryBackoffSpec.java:560) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:183) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:471) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:615) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:602) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerComplete(FluxConcatMapNoPrefetch.java:274) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onComplete(FluxConcatMap.java:887) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:246) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.5.2.jar:3.5.2]
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
        at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
    Caused by: org.springframework.retry.RetryException: SinglePage publishing status is not as expected
        at run.halo.app.core.extension.endpoint.SinglePageEndpoint.lambda$publishSinglePage$15(SinglePageEndpoint.java:215)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber.deferredComplete(MonoUsingWhen.java:268)
        at reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527)
        at reactor.core.publisher.Operators.complete(Operators.java:137)
        at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4444)
        at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:159)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:488)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:421)
        at reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onComplete(FluxBuffer.java:185)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205)
        at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.deferredComplete(FluxUsingWhen.java:392)
        at reactor.core.publisher.FluxUsingWhen$CommitInner.onComplete(FluxUsingWhen.java:527)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2205)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:209)
        at reactor.pool.SimpleDequePool.maybeRecycleAndDrain(SimpleDequePool.java:531)
        at reactor.pool.SimpleDequePool$QueuePoolRecyclerInner.onComplete(SimpleDequePool.java:761)
        at reactor.core.publisher.Operators.complete(Operators.java:137)
        at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4444)
        at reactor.pool.SimpleDequePool$QueuePoolRecyclerMono.subscribe(SimpleDequePool.java:873)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260)
        at reactor.core.publisher.Operators.complete(Operators.java:137)
        at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4444)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263)
        at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203)
        at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89)
        at reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222)
        at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85)
        at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:159)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2215)
        at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4444)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263)
        at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4444)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
        at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84)
        at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134)
        at reactor.core.publisher.FluxFilter$FilterSubscriber.onError(FluxFilter.java:157)
        at reactor.core.publisher.FluxFilter$FilterConditionalSubscriber.onError(FluxFilter.java:291)
        at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265)
        at reactor.core.publisher.Operators.error(Operators.java:198)
        at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
        at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4444)
        at reactor.core.publisher.FluxUsingWhen$UsingWhenSubscriber.onComplete(FluxUsingWhen.java:384)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:846)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:608)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:588)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.onComplete(FluxFlatMap.java:465)
        at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549)
        at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
        at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
        at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:357)
        at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294)
        at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171)
        at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164)
        at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:649)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371)
        at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:633)
        at reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92)
        at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96)
        at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)
        at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)
        at reactor.core.publisher.Flux.subscribe(Flux.java:8660)
        at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:200)
        at reactor.core.publisher.FluxFlatMap.subscribeOrReturn(FluxFlatMap.java:93)
        at reactor.core.publisher.Flux.subscribe(Flux.java:8646)
        at reactor.core.publisher.FluxUsingWhen$ResourceSubscriber.onNext(FluxUsingWhen.java:195)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
        at reactor.core.publisher.FluxRetry$RetrySubscriber.onNext(FluxRetry.java:87)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245)
        at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305)
        at io.r2dbc.pool.MonoDiscardOnCancel$MonoDiscardOnCancelSubscriber.onNext(MonoDiscardOnCancel.java:92)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203)
        at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89)
        at reactor.core.publisher.FluxHandle$HandleSubscriber.onComplete(FluxHandle.java:222)
        at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:85)
        at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:159)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2215)
        at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4444)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263)
        at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
        at io.r2dbc.pool.MonoDiscardOnCancel.subscribe(MonoDiscardOnCancel.java:50)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
        at reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:467)
        at reactor.pool.SimpleDequePool.lambda$drainLoop$8(SimpleDequePool.java:368)
        at reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:52)
        at reactor.pool.SimpleDequePool.drainLoop(SimpleDequePool.java:368)
        at reactor.pool.SimpleDequePool.pendingOffer(SimpleDequePool.java:598)
        at reactor.pool.SimpleDequePool.doAcquire(SimpleDequePool.java:294)
        at reactor.pool.AbstractPool$Borrower.request(AbstractPool.java:430)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.request(MonoFlatMap.java:194)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2215)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:117)
        at reactor.pool.SimpleDequePool$QueueBorrowerMono.subscribe(SimpleDequePool.java:716)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
        at reactor.core.publisher.FluxRetry$RetrySubscriber.resubscribe(FluxRetry.java:117)
        at reactor.core.publisher.MonoRetry.subscribeOrReturn(MonoRetry.java:50)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4429)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:180)
        at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134)
        at reactor.core.publisher.Operators.error(Operators.java:198)
        at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
        at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4444)
        at reactor.core.publisher.FluxUsingWhen.subscribe(FluxUsingWhen.java:104)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
        at reactor.core.publisher.MonoUsingWhen.subscribe(MonoUsingWhen.java:87)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64)
        at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.resubscribe(FluxRetryWhen.java:216)
        at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onNext(FluxRetryWhen.java:269)
        at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:258)
        at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863)
        at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:245)
        ... 17 common frames omitted
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
    *__checkpoint ⇢ run.halo.app.console.ConsoleProxyFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ AuthorizationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ ExceptionTranslationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ LogoutWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ ServerRequestCacheWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ LogoutPageGeneratingWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ LoginPageGeneratingWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ AnonymousAuthenticationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ AuthenticationWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ ReactorContextWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ CsrfWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ CorsWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ HttpHeaderWriterWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
    *__checkpoint ⇢ org.springframework.web.filter.reactive.ServerHttpObservationFilter [DefaultWebFilterChain]
    *__checkpoint ⇢ HTTP PUT "/apis/api.console.halo.run/v1alpha1/singlepages/373a5f79-f44f-441a-9df1-85a4f553ece8/publish" [ExceptionHandlingWebHandler]
Original Stack Trace:
        at run.halo.app.core.extension.endpoint.SinglePageEndpoint.lambda$publishSinglePage$17(SinglePageEndpoint.java:221) ~[main/:na]
        at reactor.core.publisher.Mono.lambda$doOnError$20(Mono.java:2741) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:250) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.maybeOnError(FluxConcatMapNoPrefetch.java:326) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:211) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:471) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:615) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:602) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerComplete(FluxConcatMapNoPrefetch.java:274) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onComplete(FluxConcatMap.java:887) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:246) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:305) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.5.2.jar:3.5.2]
        at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.5.2.jar:3.5.2]
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
        at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

2023-02-03T17:15:32.331+08:00 DEBUG 2051 --- [ctor-http-nio-2] r.h.a.e.controller.DefaultDelayQueue     : Adding request Request[name=88c3f10b-321c-4092-86a8-70db00251b74] immediately
2023-02-03T17:15:32.332+08:00 DEBUG 2051 --- 
5

这个错误应该已经修复了,参考 https://github.com/halo-dev/halo/pull/3210 ,你只需要将发布失败的文章重新点一次发布即可,等下个版本发布后就没有这样的问题了,或者你拉取 main 分支最新的代码尝试

4

@guqing 好的,本地运行需要修改配置才能通过 jar 包方式安装插件的事情,建议添加进 halo 文档。 感谢支持 ,辛苦 close issue

3

后续插件的文档会上线,你可以不指定 dev prifile 启动直接通过 application.yaml 启动就不需要改任何东西了