onetimesecret/onetimesecret · error · Onetime::Problem

Incoming config already exists for this domain

Error message

Incoming config already exists for this domain

What it means

Error "Incoming config already exists for this domain" thrown in onetimesecret/onetimesecret.

Source

Thrown at lib/onetime/models/custom_domain/incoming_config.rb:332

        # Check if a domain has incoming config.
        #
        # @param domain_id [String] CustomDomain identifier
        # @return [Boolean] true if incoming config exists
        def exists_for_domain?(domain_id)
          return false if domain_id.to_s.empty?

          exists?(domain_id)
        end

        # Create a new incoming config for a domain.
        #
        # @param domain_id [String] CustomDomain identifier
        # @param attrs [Hash] Configuration attributes
        # @return [CustomDomain::IncomingConfig] The created config
        # @raise [Onetime::Problem] if config already exists
        def create!(domain_id:, **attrs)
          raise Onetime::Problem, 'domain_id is required' if domain_id.to_s.empty?
          raise Onetime::Problem, 'Incoming config already exists for this domain' if exists_for_domain?(domain_id)

          config = new(domain_id: domain_id)

          config.enabled    = attrs[:enabled].to_s if attrs.key?(:enabled)
          config.recipients = attrs[:recipients] if attrs.key?(:recipients)

          now            = Familia.now.to_i
          config.created = now
          config.updated = now

          config.save
          config
        end

        # Delete incoming config for a domain.
        #
        # @param domain_id [String] CustomDomain identifier
        # @return [Boolean] true if deleted, false if not found

View on GitHub (pinned to f81295e41b)

Solutions

  1. Update or delete the existing incoming config for this domain instead of creating a new one.

When it happens

Trigger: Thrown at lib/onetime/models/custom_domain/incoming_config.rb:332 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of onetimesecret/onetimesecret@f81295e41b (2026-08-23). Data as JSON: /api/errors/9c290d003f45d543. Report an issue: GitHub.