[worker] Error: error.entity-with-id-not-found
[worker] at TransactionalConnection.getEntityOrThrowInternal (C:\Users\kolja\Documents\GitHub\venduretest\node_modules\@vendure\core\src\connection\transactional-connection.ts:250:19)
[worker] at processTicksAndRejections (node:internal/process/task_queues:95:5)
[worker] at async AssetService.update (C:\Users\kolja\Documents\GitHub\venduretest\node_modules\@vendure\core\src\service\services\asset.service.ts:315:23)
[worker] at async GiftCardRenderer.createGiftCardImageAsset (C:\Users\kolja\Documents\GitHub\venduretest\libs\plugin-gift-card\src\lib\service\gift-card-renderer.ts:56:9)
[worker] at async C:\Users\kolja\Documents\GitHub\venduretest\libs\plugin-gift-card\src\lib\service\gift-card.service.ts:105:37
The file gets created and is stored in the file system and it is accessible from the assets-page, but no email is sent and it is not visible on the giftcards page.
Steps to reproduce
Follow Getting Started steps to install Vendure (use npx, database: mysql)
Install dependencies using npm or yarn (tested both)
import {
dummyPaymentHandler,
DefaultJobQueuePlugin,
DefaultSearchPlugin,
VendureConfig,
} from "@vendure/core";
import {defaultEmailHandlers, EmailPlugin} from "@vendure/email-plugin";
import {AssetServerPlugin} from "@vendure/asset-server-plugin";
import {AdminUiPlugin} from "@vendure/admin-ui-plugin";
import "dotenv/config";
import path from "path";
import {GiftCardPlugin} from "@vendure-plus/gift-card-plugin";
import {compileUiExtensions} from "@vendure/ui-devkit/compiler";
import {
giftCardDeliveryConfirmationEmailHandler,
giftCardEmailHandler,
} from "./plugins/giftcard/gift-card-email-handlers";
const IS_DEV = process.env.APP_ENV === "dev";
export const config: VendureConfig = {
apiOptions: {
port: 3000,
adminApiPath: "admin-api",
shopApiPath: "shop-api",
// The following options are useful in development mode,
// but are best turned off for production for security
// reasons.
...(IS_DEV
? {
adminApiPlayground: {
settings: {"request.credentials": "include"} as any,
},
adminApiDebug: true,
shopApiPlayground: {
settings: {"request.credentials": "include"} as any,
},
shopApiDebug: true,
}
: {}),
},
authOptions: {
tokenMethod: ["bearer", "cookie"],
superadminCredentials: {
identifier: process.env.SUPERADMIN_USERNAME,
password: process.env.SUPERADMIN_PASSWORD,
},
cookieOptions: {
secret: process.env.COOKIE_SECRET,
},
},
dbConnectionOptions: {
type: "mysql",
// See the README.md "Migrations" section for an explanation of
// the `synchronize` and `migrations` options.
synchronize: true,
migrations: [path.join(__dirname, "./migrations/*.+(js|ts)")],
logging: false,
database: process.env.DB_NAME,
host: process.env.DB_HOST,
port: +process.env.DB_PORT,
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
},
paymentOptions: {
paymentMethodHandlers: [dummyPaymentHandler],
},
// When adding or altering custom field definitions, the database will
// need to be updated. See the "Migrations" section in README.md.
customFields: {},
plugins: [
GiftCardPlugin.init({
defaultImagePaths: [
// The plugin ships with some generic gift card images you can use to get started
"node_modules/@vendure-plus/gift-card-plugin/assets/default-gift-card-black.jpg",
"node_modules/@vendure-plus/gift-card-plugin/assets/default-gift-card-gold.jpg",
"node_modules/@vendure-plus/gift-card-plugin/assets/default-gift-card-silver.jpg",
],
createDefaultGiftCardProduct: {
// On bootstrap, a new ProductVariant will be created with the following details
name: "Gift Card",
sku: "GC01",
},
}),
AdminUiPlugin.init({
route: "admin",
port: 3002,
app: compileUiExtensions({
outputPath: path.join(__dirname, "../admin-ui"),
extensions: [GiftCardPlugin.uiExtensions],
devMode: false,
}),
}),
AssetServerPlugin.init({
route: "assets",
assetUploadDir: path.join(__dirname, "../static/assets"),
// For local dev, the correct value for assetUrlPrefix should
// be guessed correctly, but for production it will usually need
// to be set manually to match your production url.
assetUrlPrefix: IS_DEV
? undefined
: "https://www.my-shop.com/assets",
}),
DefaultJobQueuePlugin.init({useDatabaseForBuffer: true}),
DefaultSearchPlugin.init({
bufferUpdates: false,
indexStockStatus: true,
}),
EmailPlugin.init({
devMode: true,
outputPath: path.join(__dirname, "../static/email/test-emails"),
route: "mailbox",
handlers: [
...defaultEmailHandlers,
giftCardEmailHandler,
giftCardDeliveryConfirmationEmailHandler,
],
templatePath: path.join(__dirname, "../static/email/templates"),
globalTemplateVars: {
// The following variables will change depending on your storefront implementation.
// Here we are assuming a storefront running at http://localhost:8080.
fromAddress: '"example" <noreply@example.com>',
verifyEmailAddressUrl: "http://localhost:8080/verify",
passwordResetUrl: "http://localhost:8080/password-reset",
changeEmailAddressUrl:
"http://localhost:8080/verify-email-address-change",
},
}),
],
};
The full error:
The file gets created and is stored in the file system and it is accessible from the assets-page, but no email is sent and it is not visible on the giftcards page.
Steps to reproduce
yarn dev
ornpm run dev
Versions tested Node 18.13.0 and as a docker image: node:16 Docker image yarn 1.22.19 npm 9.2.0 Vendure 1.9.1 and 1.9.2 Database mariadb:10.7
package.json
vendure-config.ts