sentry-javascript icon indicating copy to clipboard operation
sentry-javascript copied to clipboard

Uncaught Exception "Deno.permissions.querySync is not a function" when using Deno Deploy CLI

Open chillbrodev opened this issue 2 years ago • 3 comments

Environment

7.99.0

Steps to Reproduce

  1. Import Sentry via: import * as Sentry from 'https://deno.land/x/[email protected]/index.mjs'; in any typescript file.
  2. Run Deno Deploy: deployctl deploy --project=<SOME_PROJECT> ./src/main.ts
  3. See exception:
 Using config file 'deno.jsonc'
✔ Deploying to project <SOME_PROJECT>.
✔ Entrypoint: /src/main.ts
ℹ Uploading all files from the current dir (server)
✔ Found 62 assets.
✔ Uploaded 5 new assets.
✖ Deployment failed.
error: The deployment failed: UNCAUGHT_EXCEPTION

TypeError: Deno.permissions.querySync is not a function
    at getHostName (https://deno.land/x/[email protected]/index.mjs:11183:35)
    at new DenoClient (https://deno.land/x/[email protected]/index.mjs:11215:41)
    at initAndBind (https://deno.land/x/[email protected]/index.mjs:10396:18)
    at Module.init (https://deno.land/x/[email protected]/index.mjs:12445:3)
    at file:///src/src/main.ts:25:9
    at eventLoopTick (ext:core/01_core.js:182:7)

This is noted on Deno Deploy Github here as well. https://github.com/denoland/deploy_feedback/issues/527#issuecomment-1845083474

Expected Result

Expected result is that Deno Deploy works without issue. Deployment works when using Sentry via the npm import: import * as Sentry from 'npm:@sentry/node'

Actual Result

Deno Deploy fails. Here are the logs from Deno Deploy portal:

Cloning repository (100%)
Downloaded
file:///src/src/main.ts
Downloaded
https://deno.land/[email protected]/dotenv/mod.ts
Downloaded
https://deno.land/x/[email protected]/mod.ts
Downloaded
https://deno.land/x/[email protected]/middleware.ts
Downloaded
file:///src/src/clients/redis/redis_client.ts
Downloaded
file:///src/src/features/articles/articles.service.ts
Downloaded
file:///src/src/clients/project_media/project_media_client.ts
Downloaded
file:///src/src/features/articles/articles.controller.ts
Downloaded
file:///src/src/middlewares/error_handler/error_handler.ts
Downloaded
https://deno.land/x/[email protected]/index.mjs
Downloaded
file:///src/src/features/account/account.controller.ts
Downloaded
file:///src/src/features/account/account.service.ts
Downloaded
file:///src/src/clients/project_account/project_account_client.ts
Downloaded
file:///src/src/middlewares/logger/custom_hono_logger.ts
Downloaded
https://deno.land/[email protected]/fmt/colors.ts
Downloaded
https://deno.land/x/[email protected]/hono.ts
Downloaded
https://deno.land/x/[email protected]/http-exception.ts
Downloaded
https://deno.land/x/[email protected]/router/reg-exp-router/index.ts
Downloaded
https://deno.land/x/[email protected]/router/trie-router/index.ts
Downloaded
https://deno.land/x/[email protected]/router/smart-router/index.ts
Downloaded
https://deno.land/x/[email protected]/router/pattern-router/index.ts
Downloaded
https://deno.land/x/[email protected]/router/linear-router/index.ts
Downloaded
https://deno.land/x/[email protected]/validator/index.ts
Downloaded
https://deno.land/x/[email protected]/client/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/basic-auth/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/bearer-auth/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/cache/index.ts
Downloaded
https://deno.land/x/[email protected]/helper/cookie/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/compress/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/cors/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/csrf/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/etag/index.ts
Downloaded
https://deno.land/x/[email protected]/helper/html/index.ts
Downloaded
https://deno.land/x/[email protected]/jsx/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/jsx-renderer/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/jwt/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/logger/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/powered-by/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/timing/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/pretty-json/index.ts
Downloaded
https://deno.land/x/[email protected]/middleware/secure-headers/index.ts
Downloaded
https://deno.land/x/[email protected]/adapter/deno/serve-static.ts
Downloaded
https://deno.land/x/[email protected]/mod.ts
Downloaded
file:///src/src/clients/project_media/models/project_media.interfaces.ts
Downloaded
file:///src/src/features/articles/articles.interfaces.ts
Downloaded
file:///src/src/clients/project_media/find_included.ts
Downloaded
file:///src/src/features/articles/parser/content_parser.ts
Downloaded
file:///src/src/features/articles/parser/errors/parse_data_failed.ts
Downloaded
file:///src/src/features/articles/parser/interest_parser.ts
Downloaded
file:///src/src/features/articles/parameters/get_articles_params.ts
Downloaded
file:///src/src/features/articles/filters/is_live_blog_filter.ts
Downloaded
file:///src/src/features/articles/filters/air_date_in_future_filter.ts
Downloaded
file:///src/src/clients/project_media/errors/project_media_not_found.ts
Downloaded
file:///src/src/referer.ts
Downloaded
file:///src/src/errors/ensure_error.ts
Downloaded
file:///src/src/middlewares/logger/sentry_exception_logger.ts
Downloaded
file:///src/src/clients/project_account/errors/project_account_error.ts
Downloaded
file:///src/src/clients/project_account/models/project_account.interface.ts
Downloaded
file:///src/src/features/account/account.interfaces.ts
Downloaded
https://deno.land/x/[email protected]/mod.ts
Downloaded
https://deno.land/x/[email protected]/hono-base.ts
Downloaded
https://deno.land/x/[email protected]/router/reg-exp-router/router.ts
Downloaded
https://deno.land/x/[email protected]/router/trie-router/router.ts
Downloaded
https://deno.land/x/[email protected]/router/smart-router/router.ts
Downloaded
https://deno.land/x/[email protected]/router/pattern-router/router.ts
Downloaded
https://deno.land/x/[email protected]/router/linear-router/router.ts
Downloaded
https://deno.land/x/[email protected]/validator/validator.ts
Downloaded
https://deno.land/x/[email protected]/client/client.ts
Downloaded
https://deno.land/x/[email protected]/utils/buffer.ts
Downloaded
https://deno.land/x/[email protected]/utils/encode.ts
Downloaded
https://deno.land/x/[email protected]/utils/cookie.ts
Downloaded
https://deno.land/x/[email protected]/utils/crypto.ts
Downloaded
https://deno.land/x/[email protected]/utils/html.ts
Downloaded
https://deno.land/x/[email protected]/jsx/components.ts
Downloaded
https://deno.land/x/[email protected]/jsx/streaming.ts
Downloaded
https://deno.land/x/[email protected]/utils/jwt/index.ts
Downloaded
https://deno.land/x/[email protected]/context.ts
Downloaded
https://deno.land/x/[email protected]/utils/url.ts
Downloaded
https://deno.land/x/[email protected]/utils/filepath.ts
Downloaded
https://deno.land/x/[email protected]/utils/mime.ts
Downloaded
https://deno.land/x/[email protected]/protocol/shared/types.ts
Downloaded
https://deno.land/x/[email protected]/redis.ts
Downloaded
https://deno.land/x/[email protected]/errors.ts
Downloaded
file:///src/src/features/articles/parser/article_content.interfaces.ts
Downloaded
file:///src/src/logger.ts
Downloaded
file:///src/src/errors/base_error.ts
Downloaded
https://deno.land/x/[email protected]/index.ts
Downloaded
https://deno.land/x/[email protected]/compose.ts
Downloaded
https://deno.land/x/[email protected]/request.ts
Downloaded
https://deno.land/x/[email protected]/router.ts
Downloaded
https://deno.land/x/[email protected]/router/reg-exp-router/node.ts
Downloaded
https://deno.land/x/[email protected]/router/reg-exp-router/trie.ts
Downloaded
https://deno.land/x/[email protected]/router/trie-router/node.ts
Downloaded
https://deno.land/x/[email protected]/client/utils.ts
Downloaded
https://deno.land/x/[email protected]/utils/jwt/jwt.ts
Downloaded
https://deno.land/x/[email protected]/utils/stream.ts
Downloaded
https://deno.land/x/[email protected]/connection.ts
Downloaded
https://deno.land/x/[email protected]/executor.ts
Downloaded
https://deno.land/x/[email protected]/pipeline.ts
Downloaded
https://deno.land/x/[email protected]/pubsub.ts
Downloaded
https://deno.land/x/[email protected]/stream.ts
Downloaded
https://deno.land/[email protected]/log/mod.ts
Downloaded
https://deno.land/x/[email protected]/external.ts
Downloaded
https://deno.land/x/[email protected]/utils/body.ts
Downloaded
https://deno.land/x/[email protected]/utils/jwt/types.ts
Downloaded
https://deno.land/x/[email protected]/protocol/deno_streams/mod.ts
Downloaded
https://deno.land/x/[email protected]/backoff.ts
Downloaded
https://deno.land/x/[email protected]/internal/symbols.ts
Downloaded
https://deno.land/x/[email protected]/vendor/https/deno.land/std/async/deferred.ts
Downloaded
https://deno.land/x/[email protected]/vendor/https/deno.land/std/async/delay.ts
Downloaded
https://deno.land/x/[email protected]/internal/encoding.ts
Downloaded
https://deno.land/[email protected]/log/logger.ts
Downloaded
https://deno.land/[email protected]/log/handlers.ts
Downloaded
https://deno.land/[email protected]/assert/assert.ts
Downloaded
https://deno.land/[email protected]/log/levels.ts
Downloaded
https://deno.land/x/[email protected]/errors.ts
Downloaded
https://deno.land/x/[email protected]/helpers/parseUtil.ts
Downloaded
https://deno.land/x/[email protected]/helpers/typeAliases.ts
Downloaded
https://deno.land/x/[email protected]/helpers/util.ts
Downloaded
https://deno.land/x/[email protected]/types.ts
Downloaded
https://deno.land/x/[email protected]/ZodError.ts
Downloaded
https://deno.land/x/[email protected]/vendor/https/deno.land/std/io/buf_reader.ts
Downloaded
https://deno.land/x/[email protected]/vendor/https/deno.land/std/io/buf_writer.ts
Downloaded
https://deno.land/x/[email protected]/protocol/deno_streams/reply.ts
Downloaded
https://deno.land/x/[email protected]/protocol/deno_streams/command.ts
Downloaded
https://deno.land/[email protected]/async/deferred.ts
Downloaded
https://deno.land/[email protected]/async/delay.ts
Downloaded
https://deno.land/[email protected]/fmt/colors.ts
Downloaded
https://deno.land/[email protected]/fs/exists.ts
Downloaded
https://deno.land/[email protected]/io/buf_writer.ts
Downloaded
https://deno.land/[email protected]/assert/assertion_error.ts
Downloaded
https://deno.land/x/[email protected]/locales/en.ts
Downloaded
https://deno.land/x/[email protected]/helpers/enumUtil.ts
Downloaded
https://deno.land/x/[email protected]/helpers/errorUtil.ts
Downloaded
https://deno.land/x/[email protected]/helpers/partialUtil.ts
Downloaded
https://deno.land/[email protected]/io/buf_reader.ts
Downloaded
https://deno.land/[email protected]/io/buf_writer.ts
Downloaded
https://deno.land/x/[email protected]/protocol/shared/reply.ts
Downloaded
https://deno.land/x/[email protected]/protocol/shared/command.ts
Downloaded
https://deno.land/[email protected]/bytes/copy.ts
Downloaded
https://deno.land/[email protected]/assert/assert.ts
Downloaded
https://deno.land/[email protected]/bytes/copy.ts
Downloaded
https://deno.land/x/[email protected]/vendor/https/deno.land/std/bytes/concat.ts
Downloaded
https://deno.land/[email protected]/assert/assertion_error.ts
Downloaded
https://deno.land/[email protected]/bytes/concat.ts
Packaging complete
Error The deployment failed: UNCAUGHT_EXCEPTION

TypeError: Deno.permissions.querySync is not a function
    at getHostName (https://deno.land/x/[email protected]/index.mjs:11183:35)
    at new DenoClient (https://deno.land/x/[email protected]/index.mjs:11215:41)
    at initAndBind (https://deno.land/x/[email protected]/index.mjs:10396:18)
    at Module.init (https://deno.land/x/[email protected]/index.mjs:12445:3)
    at file:///src/src/main.ts:25:9
    at eventLoopTick (ext:core/01_core.js:182:7)

EDIT: Still failing on 7.99.0, SDK version updated

chillbrodev avatar Jan 19 '24 21:01 chillbrodev

@getsentry-bot Bump

chillbrodev avatar Feb 05 '24 20:02 chillbrodev

Hm this sucks. It looks like an upstream issue to me that deno deploy should fix. We don't have the capacity to fix this right now so I'll backlog. Maybe you can work around this with the workaround described here: https://github.com/denoland/deploy_feedback/issues/527#issuecomment-1774129816

lforst avatar Feb 06 '24 12:02 lforst

Hm this sucks. It looks like an upstream issue to me that deno deploy should fix. We don't have the capacity to fix this right now so I'll backlog. Maybe you can work around this with the workaround described here: denoland/deploy_feedback#527 (comment)

@lforst Sounds good, I'll look into the workaround. I switched back to using the npm package for now and that is working for me. I also didn't realize that posting issues on sentry-deno open an issue here. TIL.

chillbrodev avatar Feb 06 '24 18:02 chillbrodev

From Deno Discord: https://discord.com/channels/684898665143206084/826085979344470037/1209268059173298257

I thnk *Sync functions are all omitted intentionally and the sentry module should be updated to use the async apis ideally

AbhiPrasad avatar Feb 20 '24 15:02 AbhiPrasad

Do you know if there is any progress on trying to resolve this one Sentry/Deno side? Is there any way I could help to progress with this one?

I encountered the same bug which unfortunately makes Sentry not an option for me to use on Deno projects deployed to Deno Deploy.

pawelgrzybek avatar Aug 14 '24 11:08 pawelgrzybek

@pawelgrzybek I just realized that we probably don't have to rely on querySync and opened a pr to fix. We will probably release this within the next two weeks. (Next week Sentry has a hackathon we won't be around for normal operation.) https://github.com/getsentry/sentry-javascript/pull/13378

lforst avatar Aug 14 '24 11:08 lforst

Thanks for info and rapid reaction @lforst , looking forward for this one to be merged and released.

pawelgrzybek avatar Aug 14 '24 12:08 pawelgrzybek