diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9760519f8c50..42da437e2897 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,31 @@
# Changelog
+### [Version 1.19.9](https://github.com/lobehub/lobe-chat/compare/v1.19.8...v1.19.9)
+
+Released on **2024-09-20**
+
+#### 🐛 Bug Fixes
+
+- **misc**: Fix a bug with server agent config when user not exist.
+
+
+
+
+Improvements and Fixes
+
+#### What's fixed
+
+- **misc**: Fix a bug with server agent config when user not exist, closes [#4034](https://github.com/lobehub/lobe-chat/issues/4034) ([f6a232b](https://github.com/lobehub/lobe-chat/commit/f6a232b))
+
+
+
+
+
+[![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
+
+
+
### [Version 1.19.8](https://github.com/lobehub/lobe-chat/compare/v1.19.7...v1.19.8)
Released on **2024-09-19**
diff --git a/package.json b/package.json
index 1c6f928de7a0..786a87ca624d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@lobehub/chat",
- "version": "1.19.8",
+ "version": "1.19.9",
"description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
"keywords": [
"framework",
diff --git a/src/app/api/webhooks/clerk/route.ts b/src/app/api/webhooks/clerk/route.ts
index 9bd3eb9f4ba0..6bd88cd7cf4e 100644
--- a/src/app/api/webhooks/clerk/route.ts
+++ b/src/app/api/webhooks/clerk/route.ts
@@ -28,6 +28,7 @@ export const POST = async (req: Request): Promise => {
const userService = new UserService();
switch (type) {
case 'user.created': {
+ pino.info('creating user due to clerk webhook');
return userService.createUser(data.id, data);
}
case 'user.deleted': {
diff --git a/src/server/routers/lambda/agent.ts b/src/server/routers/lambda/agent.ts
index e8e01fab45cd..1ce31bef76b0 100644
--- a/src/server/routers/lambda/agent.ts
+++ b/src/server/routers/lambda/agent.ts
@@ -1,10 +1,12 @@
import { z } from 'zod';
import { INBOX_SESSION_ID } from '@/const/session';
+import { DEFAULT_AGENT_CONFIG } from '@/const/settings';
import { AgentModel } from '@/database/server/models/agent';
import { FileModel } from '@/database/server/models/file';
import { KnowledgeBaseModel } from '@/database/server/models/knowledgeBase';
import { SessionModel } from '@/database/server/models/session';
+import { UserModel } from '@/database/server/models/user';
import { pino } from '@/libs/logger';
import { authedProcedure, router } from '@/libs/trpc';
import { KnowledgeItem, KnowledgeType } from '@/types/knowledgeBase';
@@ -84,6 +86,10 @@ export const agentRouter = router({
const item = await ctx.sessionModel.findByIdOrSlug(INBOX_SESSION_ID);
// if there is no session for user, create one
if (!item) {
+ // if there is no user, return default config
+ const user = await UserModel.findById(ctx.userId);
+ if (!user) return DEFAULT_AGENT_CONFIG;
+
const res = await ctx.sessionModel.createInbox();
pino.info('create inbox session', res);
}
diff --git a/src/server/services/user/index.ts b/src/server/services/user/index.ts
index c9708b3bd62f..1bc3480fed74 100644
--- a/src/server/services/user/index.ts
+++ b/src/server/services/user/index.ts
@@ -6,8 +6,6 @@ import { pino } from '@/libs/logger';
export class UserService {
createUser = async (id: string, params: UserJSON) => {
- pino.info('creating user due to clerk webhook');
-
// Check if user already exists
const res = await UserModel.findById(id);